Sirraide wrote:

> my worry about ill-effects from canonicalization of the user's 
> build-dir-relative file paths into absolute paths is a more general one

Yeah, and moreover, another point I just thought of is that users tend to have 
more control over their own include directories, i.e. if you don’t want your 
paths to be printed w/ `..`, then just don’t use relative includes and add the 
directories you’re including from to the include path. But when it comes to the 
standard library, users don’t get a choice because we have those paths 
hard-coded as relative paths. So doing this *only* for standard library include 
paths sgtm.

More specifically, my idea now is to canonicalise all paths added via 
`-include-isystem` (unless `-no-canonical-prefix` is specified) since 
1. there are a *lot* of places in which we create relative paths to standard 
library headers, and doing canonicalisation where we first compose those paths 
would require doing that in dozens of places; from what I can tell though, we 
consistently use `-include-isystem` (or a variant of it for C headers iirc) for 
all of them, and
2. `-include-isystem` is not supposed to be a user-facing flag anyway (I think 
it’s only supported as a cc1 option?), so if you’re using that as a user then 
you get what you get imo.

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

Reply via email to