summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/InitHeaderSearch.cpp
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2011-03-15 02:32:36 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2011-03-15 02:32:36 +0000
commit63b4b456be050968c2eb6ed77ade88dd25c8e820 (patch)
tree5b5de24b097b2322ff86e9f838fb720efa57ced3 /clang/lib/Frontend/InitHeaderSearch.cpp
parentc4414c6e92da69e747b9a10479ee95403bbd431b (diff)
downloadbcm5719-llvm-63b4b456be050968c2eb6ed77ade88dd25c8e820.tar.gz
bcm5719-llvm-63b4b456be050968c2eb6ed77ade88dd25c8e820.zip
lib/Frontend/InitHeaderSearch.cpp: Introduce AddMinGW64CXXPaths(Base) for x86_64-w64-mingw32.
llvm-svn: 127652
Diffstat (limited to 'clang/lib/Frontend/InitHeaderSearch.cpp')
-rw-r--r--clang/lib/Frontend/InitHeaderSearch.cpp36
1 files changed, 24 insertions, 12 deletions
diff --git a/clang/lib/Frontend/InitHeaderSearch.cpp b/clang/lib/Frontend/InitHeaderSearch.cpp
index 60c3e9c4d0b..78634d89826 100644
--- a/clang/lib/Frontend/InitHeaderSearch.cpp
+++ b/clang/lib/Frontend/InitHeaderSearch.cpp
@@ -76,6 +76,10 @@ public:
llvm::StringRef Arch,
llvm::StringRef Version);
+ /// AddMinGW64CXXPaths - Add the necessary paths to support
+ /// libstdc++ of x86_64-w64-mingw32 aka mingw-w64.
+ void AddMinGW64CXXPaths(llvm::StringRef Base);
+
/// AddDelimitedPaths - Add a list of paths delimited by the system PATH
/// separator. The processing follows that of the CPATH variable for gcc.
void AddDelimitedPaths(llvm::StringRef String);
@@ -207,6 +211,15 @@ void InitHeaderSearch::AddMinGWCPlusPlusIncludePaths(llvm::StringRef Base,
CXXSystem, true, false, false);
}
+void InitHeaderSearch::AddMinGW64CXXPaths(llvm::StringRef Base) {
+ AddPath(Base,
+ CXXSystem, true, false, false);
+ AddPath(Base + "/x86_64-w64-mingw32",
+ CXXSystem, true, false, false);
+ AddPath(Base + "/backward",
+ CXXSystem, true, false, false);
+}
+
// FIXME: This probably should goto to some platform utils place.
#ifdef _MSC_VER
@@ -534,6 +547,10 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple,
AddPath("/usr/include/w32api", System, true, false, false);
break;
case llvm::Triple::MinGW32:
+ // FIXME: We should be aware of i686-w64-mingw32.
+ if (triple.getArch() == llvm::Triple::x86_64)
+ AddPath("c:/mingw/x86_64-w64-mingw32/include",
+ System, true, false, false);
AddPath("/mingw/include", System, true, false, false);
AddPath("c:/mingw/include", System, true, false, false);
break;
@@ -571,18 +588,13 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple) {
AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "3.4.4");
break;
case llvm::Triple::MinGW32:
- // mingw-w64-20110207
- AddPath("c:/MinGW/include/c++/4.5.3", CXXSystem, true, false, false);
- AddPath("c:/MinGW/include/c++/4.5.3/x86_64-w64-mingw32", CXXSystem, true,
- false, false);
- AddPath("c:/MinGW/include/c++/4.5.3/backward", CXXSystem, true, false,
- false);
- // mingw-w64-20101129
- AddPath("c:/MinGW/include/c++/4.5.2", CXXSystem, true, false, false);
- AddPath("c:/MinGW/include/c++/4.5.2/x86_64-w64-mingw32", CXXSystem, true,
- false, false);
- AddPath("c:/MinGW/include/c++/4.5.2/backward", CXXSystem, true, false,
- false);
+ // FIXME: We should be aware of i686-w64-mingw32.
+ if (triple.getArch() == llvm::Triple::x86_64) {
+ // mingw-w64-20110207
+ AddMinGW64CXXPaths("c:/mingw/x86_64-w64-mingw32/include/c++/4.5.3");
+ // mingw-w64-20101129
+ AddMinGW64CXXPaths("c:/mingw/x86_64-w64-mingw32/include/c++/4.5.2");
+ }
// Try gcc 4.5.2 (MSYS)
AddMinGWCPlusPlusIncludePaths("/mingw/lib/gcc", "mingw32", "4.5.2");
// Try gcc 4.5.0
OpenPOWER on IntegriCloud