smeenai wrote:

> Thanks for the quick response!
> 
> > The `sys::path::append` behavior here is surprising. I think it'd be better 
> > to change the computation of `SysRoot` in the function above (line 3102, 
> > which I can't comment because of GitHub, sigh) to default to 
> > `llvm::sys::path::get_separator()` if it's empty, to handle Windows slashes 
> > as well as be less confusing to read.
> 
> That sounds sensible to me in principle, but not trivial: presumably the 
> overrides of `Toolchain::getSysroot()` should have a consistent contract. 
> There are 6 overrides, where some explicitly return the empty string, and 25 
> callers some of which do things like `computeSysRoot() + "/include/c++/"` 
> (RISCVToolchain). I feel it's likely I'll break something on a platform I 
> don't understand before getting back to a good state :-)

I just meant to change 
https://github.com/llvm/llvm-project/blob/5eaa5312e7943e23155da4f0fbf07b55a200fc60/clang/lib/Driver/ToolChains/Gnu.cpp#L3102
 to something like (untested):

```
std::string SysRoot = computeSysRoot();
if (SysRoot.empty())
  SysRoot = llvm::sys::path::get_separator();
```

It's a local fix, but all the code here is pretty inconsistent anyway, so I 
don't feel too bad about it.

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

Reply via email to