sr-tream wrote:

> apart from technical details like the threading concerns and reliance on 
> certain variants that we don't really have (eg order of includes); at a high 
> level the idea of "finding a representative source file for the header and 
> replicating the PP state" is hard to work in general.
> 
> The current approach of finding a candidate through `HeaderIncluders` will 
> pick an arbitrary source file that transitively includes the header you're 
> interested in. Hence you'll actually create a set of `-include XX` commands, 
> that **might** (and probably will) recursively include the header itself. 
> Also there's nothing detecting a failure in processing of the compilation 
> unit, this is done without checking self-containedness (which is again hard 
> to check) hence will definitely regress both performance and correctness for 
> self-contained headers as well.

We can limit ourselves to only the paired source file, and cancel inclusions if 
the source file does not include a non-self-contained header directly. This 
will reduce the number of situations in which this hack works, but will avoid 
the problems you describe

https://github.com/llvm/llvm-project/pull/72479
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to