v.g.vassilev added a comment.
I am not sure whether that's useful for debugging out-of-date issues but this
is what I use and it is helpful.
Some debugging aids (suggested by Richard Smith):
-fdiagnostics-show-note-include-stack will tell you which module a note comes
#pragma clang __debug dump X allows you to produce an AST dump from within a
source file, so you can see which modules declare a given name
#pragma clang __debug macro M allows you to dump a macro, which can be useful
to see which module(s) export visible include guards for a header
If a name is not visible in a modules build but is visible in a non-modules
build, i usually find that's due to one of two things
some part of the machinery that provides it depends on macro definitions
leaking into a modular header from outside, or
there is an include cycle involving a modular header and a non-modular header
cfe-commits mailing list