ilya-biryukov added a comment.

In https://reviews.llvm.org/D54310#1296080, @arphaman wrote:

> Apologies for not seeing this earlier.


No worries, thanks for the input!

>> The logic to do this was based on resource dir as an approximation of
>>  where the compiler is installed. This broke the tools that read
>>  'compile_commands.json' and don't ship with the compiler, as they
>>  typically change resource dir.
> 
> In that case I think the tool should adjust the `-resource-dir` to point to 
> the appropriate `-resource-dir` for the compiler in the toolchain. However, 
> that comes with its own problems, as the builtin headers might be 
> incompatible between the tool and the compiler in the toolchain.

Exactly the problem we're facing. Since the -resource-dir is primarily used to 
find the builtin headers, we **have** to override it in the tools to avoid 
breaking them.

> In that case I think it would be preferable for the tool to ship with its own 
> libc++ headers in addition to the builtin headers rather than implementing 
> this behavior.

There's value in providing the users with warnings/errors from exactly the same 
version of the C++ standard library that's used by the compiler, so I would 
avoid going down this path if possible.

> If that's unacceptable I think we should adjust libTooling to add a search 
> path for the libc++ headers when the tool detects that it's running outside 
> of the toolchain on Darwin (i.e. 'clang' doesn't exist in the same directory 
> as the tool, and '../include/c++' doesn't exist as well)  instead of changing 
> this behavior.

This was the original intention of the patch, but I don't think we should limit 
this to libTooling.
I'll have a look at what exactly lldb broke and will come up with a fix to this 
behavior.


Repository:
  rL LLVM

https://reviews.llvm.org/D54310



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to