[cfe-commits] r103912 - /cfe/trunk/lib/Frontend/InitHeaderSearch.cpp
mike-m
mikem.llvm at gmail.com
Sun May 16 14:47:43 PDT 2010
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