]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++modules: report module mapper files as a dependency
authorBen Boeckel <ben.boeckel@kitware.com>
Fri, 1 Sep 2023 13:04:04 +0000 (09:04 -0400)
committerJason Merrill <jason@redhat.com>
Tue, 19 Sep 2023 21:32:23 +0000 (17:32 -0400)
commit6c33fade75a76fa29908fad411b76a3670376152
tree6d501dda822e87bd56622d8eb0acd36f77f6b3a5
parentce1b47e9613ff7198c3a4e3ccd5b2ecb9cb35ef7
c++modules: report module mapper files as a dependency

It affects the build, and if used as a static file, can reliably be
tracked using the `-MF` mechanism.

gcc/cp/:

* mapper-client.cc, mapper-client.h (open_module_client): Accept
dependency tracking and track module mapper files as
dependencies.
* module.cc (make_mapper, get_mapper): Pass the dependency
tracking class down.

gcc/testsuite/:

* g++.dg/modules/depreport-2.modmap: New test.
* g++.dg/modules/depreport-2_a.C: New test.
* g++.dg/modules/depreport-2_b.C: New test.
* g++.dg/modules/test-depfile.py: Support `:|` syntax output
when generating modules.

Signed-off-by: Ben Boeckel <ben.boeckel@kitware.com>
Reviewed-by: Jason Merrill <jason@redhat.com>
gcc/cp/mapper-client.cc
gcc/cp/mapper-client.h
gcc/cp/module.cc
gcc/testsuite/g++.dg/modules/depreport-2.modmap [new file with mode: 0644]
gcc/testsuite/g++.dg/modules/depreport-2_a.C [new file with mode: 0644]
gcc/testsuite/g++.dg/modules/depreport-2_b.C [new file with mode: 0644]
gcc/testsuite/g++.dg/modules/test-depfile.py