[PATCH] D82118: [clang][module] Improve incomplete-umbrella warning
Zixu Wang via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 15 14:04:56 PDT 2020
zixuw added a comment.
In D82118#2154280 <https://reviews.llvm.org/D82118#2154280>, @vsapsai wrote:
> Didn't get into details but overall GenModuleActionWrapper approach looks pretty complicated. Haven't tried to accomplish the same myself, so cannot say if such complexity is warranted or not.
Yes the approach is complicated. But one thing to note is that the `GenModuleActionWrapper`-related facilities are upstreamed from apple/llvm-project. I adopted this approach just because it was available. Haven't explored other ways, but yes there might be a simpler approach.
> What happens with fixits in modules when you don't have GenModuleActionWrapper?
If the fixit action is not forwarded to the new compiler instance, it will be handled by the 'outer' compiler instance, which has a different source manager that does not see the module files, so the source location cannot be correctly interpreted. From my experiments, the fixit hint is trying to write into the `<builtin>` file buffer in this test case, when I don't have the action forwarded using `GenModuleActionWrapper`. In this case the fixit rewriter quietly fails because `<builtin>` cannot be rewritten, but since this is not caught I think there might be cases where the wrong file ends up getting updated.
> How does it work with modules disabled? Also looks like there are no tests for incomplete umbrella warning when modules are disabled.
Haven't tested this, will give a try.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D82118/new/
https://reviews.llvm.org/D82118
More information about the cfe-commits
mailing list