summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Chisnall <csdavec@swan.ac.uk>2012-03-02 10:49:52 +0000
committerDavid Chisnall <csdavec@swan.ac.uk>2012-03-02 10:49:52 +0000
commite04307e47c53bb970dc67fc39c398e53a00afcf2 (patch)
treeb6e7db5e774269d0c269dc67aa09873de805c6b1
parentf485c3ccbdc143d1e36b5463f5dd78b9b6ee27e8 (diff)
downloadbcm5719-llvm-e04307e47c53bb970dc67fc39c398e53a00afcf2.tar.gz
bcm5719-llvm-e04307e47c53bb970dc67fc39c398e53a00afcf2.zip
Add the Solaris support directory to the header search when using libc++.
Unconditionally define __C99FEATURES__ when using C++ on Solaris. This is a (hopefully temporary) work around for libc++ exposing C99-but-not-C++98 features in C++98 mode. llvm-svn: 151889
-rw-r--r--clang/lib/Basic/Targets.cpp2
-rw-r--r--clang/lib/Frontend/InitHeaderSearch.cpp5
2 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index b6ccce310ef..ac8c355707e 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -498,7 +498,7 @@ protected:
Builder.defineMacro("_XOPEN_SOURCE", "600");
else
Builder.defineMacro("_XOPEN_SOURCE", "500");
- if (Opts.CPlusPlus0x)
+ if (Opts.CPlusPlus)
Builder.defineMacro("__C99FEATURES__");
Builder.defineMacro("_LARGEFILE_SOURCE");
Builder.defineMacro("_LARGEFILE64_SOURCE");
diff --git a/clang/lib/Frontend/InitHeaderSearch.cpp b/clang/lib/Frontend/InitHeaderSearch.cpp
index 4b734c97d93..ca9a2ce8899 100644
--- a/clang/lib/Frontend/InitHeaderSearch.cpp
+++ b/clang/lib/Frontend/InitHeaderSearch.cpp
@@ -461,6 +461,11 @@ void InitHeaderSearch::AddDefaultIncludePaths(const LangOptions &Lang,
AddPath(P.str(), CXXSystem, true, false, false, true);
}
}
+ // On Solaris, include the support directory for things like xlocale and
+ // fudged system headers.
+ if (triple.getOS() == llvm::Triple::Solaris)
+ AddPath("/usr/include/c++/v1/support/solaris", CXXSystem, true, false,
+ false);
AddPath("/usr/include/c++/v1", CXXSystem, true, false, false);
} else {
OpenPOWER on IntegriCloud