[cfe-commits] r103912 - /cfe/trunk/lib/Frontend/InitHeaderSearch.cpp

Nuno Lopes nunoplopes at sapo.pt
Mon May 17 14:21:31 PDT 2010


Ok, thank you! Chris has already closed the bug report.
Nuno

----- Original Message -----
pr5188 doesn't list exactly which platform was used,
however was able to duplicate bug on stock debian504 (32-bit)
and r103912 fixes it.

--mike-m

On 2010-05-16, at 4:38 PM, Nuno Lopes wrote:

> Does this fixes http://llvm.org/bugs/show_bug.cgi?id=5188 ?
> Nuno
>
> ----- Original Message -----
>> Author: mikem
>> Date: Sun May 16 14:03:52 2010
>> New Revision: 103912
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=103912&view=rev
>> Log:
>> Moved clang-builtin include dir position to immediately precede C 
>> includes.
>> This aligns with how gcc compiler does things.
>>
>> 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=103912&r1=103911&r2=103912&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Frontend/InitHeaderSearch.cpp (original)
>> +++ cfe/trunk/lib/Frontend/InitHeaderSearch.cpp Sun May 16 14:03:52 2010
>> @@ -73,7 +73,8 @@
>>  void AddDelimitedPaths(llvm::StringRef String);
>>
>>  // AddDefaultCIncludePaths - Add paths that should always be searched.
>> -  void AddDefaultCIncludePaths(const llvm::Triple &triple);
>> +  void AddDefaultCIncludePaths(const llvm::Triple &triple,
>> +                               const HeaderSearchOptions &HSOpts);
>>
>>  // AddDefaultCPlusPlusIncludePaths -  Add paths that should be searched 
>> when
>>  //  compiling c++.
>> @@ -83,7 +84,7 @@
>>  ///  that e.g. stdio.h is found.
>>  void AddDefaultSystemIncludePaths(const LangOptions &Lang,
>>                                    const llvm::Triple &triple,
>> -                                    bool UseStandardCXXIncludes);
>> +                                    const HeaderSearchOptions &HSOpts);
>>
>>  /// Realize - Merges all search path lists into one list and send it to
>>  /// HeaderSearch.
>> @@ -382,8 +383,22 @@
>>  return(false);
>> }
>>
>> -void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple 
>> &triple) {
>> +void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple 
>> &triple,
>> +                                            const HeaderSearchOptions 
>> &HSOpts) {
>>  // FIXME: temporary hack: hard-coded paths.
>> +  AddPath("/usr/local/include", System, true, false, false);
>> +
>> +  // Builtin includes use #include_next directives and should be 
>> positioned
>> +  // just prior C include dirs.
>> +  if (HSOpts.UseBuiltinIncludes) {
>> +    // Ignore the sys root, we *always* look for clang headers relative 
>> to
>> +    // supplied path.
>> +    llvm::sys::Path P(HSOpts.ResourceDir);
>> +    P.appendComponent("include");
>> +    AddPath(P.str(), System, false, false, false, /*IgnoreSysRoot=*/ 
>> true);
>> +  }
>> +
>> +  // Add dirs specified via 'configure --with-c-include-dirs'.
>>  llvm::StringRef CIncludeDirs(C_INCLUDE_DIRS);
>>  if (CIncludeDirs != "") {
>>    llvm::SmallVector<llvm::StringRef, 5> dirs;
>> @@ -480,7 +495,6 @@
>>    break;
>>  }
>>
>> -  AddPath("/usr/local/include", System, true, false, false);
>>  AddPath("/usr/include", System, false, false, false);
>> }
>>
>> @@ -666,11 +680,11 @@
>>
>> void InitHeaderSearch::AddDefaultSystemIncludePaths(const LangOptions 
>> &Lang,
>>                                                    const llvm::Triple 
>> &triple,
>> -                                                  bool 
>> UseStandardCXXIncludes) {
>> -  if (Lang.CPlusPlus && UseStandardCXXIncludes)
>> +                                            const HeaderSearchOptions 
>> &HSOpts) {
>> +  if (Lang.CPlusPlus && HSOpts.UseStandardCXXIncludes)
>>    AddDefaultCPlusPlusIncludePaths(triple);
>>
>> -  AddDefaultCIncludePaths(triple);
>> +  AddDefaultCIncludePaths(triple, HSOpts);
>>
>>  // Add the default framework include paths on Darwin.
>>  if (triple.getOS() == llvm::Triple::Darwin) {
>> @@ -828,21 +842,8 @@
>>  else
>>    Init.AddDelimitedPaths(HSOpts.CEnvIncPath);
>>
>> -  if (HSOpts.UseBuiltinIncludes) {
>> -    // Ignore the sys root, we *always* look for clang headers relative 
>> to
>> -    // supplied path.
>> -    llvm::sys::Path P(HSOpts.ResourceDir);
>> -    P.appendComponent("include");
>> -    Init.AddPath(P.str(), System, false, false, false, 
>> /*IgnoreSysRoot=*/ true);
>> -  }
>> -
>> -  if (HSOpts.UseStandardIncludes)
>> -    Init.AddDefaultSystemIncludePaths(Lang, Triple,
>> -                                      HSOpts.UseStandardCXXIncludes);
>> -
>>  if (HSOpts.UseStandardIncludes)
>> -    Init.AddDefaultSystemIncludePaths(Lang, Triple,
>> -                                      HSOpts.UseStandardCXXIncludes);
>> +    Init.AddDefaultSystemIncludePaths(Lang, Triple, HSOpts);
>>
>>  Init.Realize();
>> } 




More information about the cfe-commits mailing list