[cfe-commits] r136507 - /cfe/trunk/lib/Frontend/InitHeaderSearch.cpp
Douglas Gregor
dgregor at apple.com
Fri Jul 29 19:09:18 PDT 2011
Sent from my iPhone
On Jul 29, 2011, at 7:02 PM, Eli Friedman <eli.friedman at gmail.com> wrote:
> On Fri, Jul 29, 2011 at 1:21 PM, Douglas Gregor <dgregor at apple.com> wrote:
>> Author: dgregor
>> Date: Fri Jul 29 15:21:18 2011
>> New Revision: 136507
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=136507&view=rev
>> Log:
>> On Darwin, libc++ may be installed alongside the compiler in
>> lib/c++/v1. Look there first, before falling back to the normal
>> /usr/include/c++/v1. <rdar://problem/9866149>
>>
>> Modified:
>> cfe/trunk/lib/Frontend/InitHeaderSearch.cpp
>>
>> Modified: cfe/trunk/lib/Frontend/InitHeaderSearch.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/InitHeaderSearch.cpp?rev=136507&r1=136506&r2=136507&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Frontend/InitHeaderSearch.cpp (original)
>> +++ cfe/trunk/lib/Frontend/InitHeaderSearch.cpp Fri Jul 29 15:21:18 2011
>> @@ -940,8 +940,24 @@
>> const llvm::Triple &triple,
>> const HeaderSearchOptions &HSOpts) {
>> if (Lang.CPlusPlus && HSOpts.UseStandardCXXIncludes) {
>> - if (HSOpts.UseLibcxx)
>> + if (HSOpts.UseLibcxx) {
>> + if (triple.isOSDarwin()) {
>> + // On Darwin, libc++ may be installed alongside the compiler in
>> + // lib/c++/v1.
>> + llvm::sys::Path P(HSOpts.ResourceDir);
>> + if (!P.isEmpty()) {
>> + P.eraseComponent(); // Remove version from foo/lib/clang/version
>> + P.eraseComponent(); // Remove clang from foo/lib/clang
>> +
>> + // Get foo/lib/c++/v1
>> + P.appendComponent("c++");
>> + P.appendComponent("v1");
>> + AddPath(P.str(), CXXSystem, true, false, false, true);
>> + }
>> + }
>> +
>> AddPath("/usr/include/c++/v1", CXXSystem, true, false, false);
>> + }
>> else
>> AddDefaultCPlusPlusIncludePaths(triple, HSOpts);
>> }
>
> Is there any particular reason to restrict this to Darwin?
I didn't want to speak for any other OS's, but I'd be happy to generalize it if people agree that this is the right thing to do.
More information about the cfe-commits
mailing list