diff options
Diffstat (limited to 'lib/Frontend')
-rw-r--r-- | lib/Frontend/CompilerInvocation.cpp | 3 | ||||
-rw-r--r-- | lib/Frontend/InitHeaderSearch.cpp | 11 |
2 files changed, 10 insertions, 4 deletions
diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index 6e18f346d5..dc2c6bf361 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -436,6 +436,8 @@ static void HeaderSearchOptsToArgs(const HeaderSearchOptions &Opts, } if (!Opts.UseStandardIncludes) Res.push_back("-nostdinc"); + if (!Opts.UseStandardCXXIncludes) + Res.push_back("-nostdinc++"); if (Opts.Verbose) Res.push_back("-v"); } @@ -1014,6 +1016,7 @@ static void ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args) { Opts.Verbose = Args.hasArg(OPT_v); Opts.UseBuiltinIncludes = !Args.hasArg(OPT_nobuiltininc); Opts.UseStandardIncludes = !Args.hasArg(OPT_nostdinc); + Opts.UseStandardCXXIncludes = !Args.hasArg(OPT_nostdincxx); Opts.ResourceDir = getLastArgValue(Args, OPT_resource_dir); // Add -I... and -F... options in order. diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp index cd749d221d..9f5bced0d4 100644 --- a/lib/Frontend/InitHeaderSearch.cpp +++ b/lib/Frontend/InitHeaderSearch.cpp @@ -82,7 +82,8 @@ public: /// AddDefaultSystemIncludePaths - Adds the default system include paths so /// that e.g. stdio.h is found. void AddDefaultSystemIncludePaths(const LangOptions &Lang, - const llvm::Triple &triple); + const llvm::Triple &triple, + bool UseStandardCXXIncludes); /// Realize - Merges all search path lists into one list and send it to /// HeaderSearch. @@ -594,8 +595,9 @@ void InitHeaderSearch::AddDefaultCPlusPlusIncludePaths(const llvm::Triple &tripl } void InitHeaderSearch::AddDefaultSystemIncludePaths(const LangOptions &Lang, - const llvm::Triple &triple) { - if (Lang.CPlusPlus) + const llvm::Triple &triple, + bool UseStandardCXXIncludes) { + if (Lang.CPlusPlus && UseStandardCXXIncludes) AddDefaultCPlusPlusIncludePaths(triple); AddDefaultCIncludePaths(triple); @@ -765,7 +767,8 @@ void clang::ApplyHeaderSearchOptions(HeaderSearch &HS, } if (HSOpts.UseStandardIncludes) - Init.AddDefaultSystemIncludePaths(Lang, Triple); + Init.AddDefaultSystemIncludePaths(Lang, Triple, + HSOpts.UseStandardCXXIncludes); Init.Realize(); } |