diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-03-24 20:13:48 +0000 | 
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-03-24 20:13:48 +0000 | 
| commit | 64b046fce43cea864c81da8a35edd9c9b226ec3e (patch) | |
| tree | d80f51279b8b73de653f19fb2fec7ba007164638 /clang/lib/Frontend | |
| parent | 8e404fe769b112197ff5af91e857525fefa5d217 (diff) | |
| download | bcm5719-llvm-64b046fce43cea864c81da8a35edd9c9b226ec3e.tar.gz bcm5719-llvm-64b046fce43cea864c81da8a35edd9c9b226ec3e.zip  | |
Implement support for -nostdc++. Fixes PR6446.
llvm-svn: 99417
Diffstat (limited to 'clang/lib/Frontend')
| -rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 3 | ||||
| -rw-r--r-- | clang/lib/Frontend/InitHeaderSearch.cpp | 11 | 
2 files changed, 10 insertions, 4 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 6e18f346d56..dc2c6bf3614 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/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/clang/lib/Frontend/InitHeaderSearch.cpp b/clang/lib/Frontend/InitHeaderSearch.cpp index cd749d221db..9f5bced0d48 100644 --- a/clang/lib/Frontend/InitHeaderSearch.cpp +++ b/clang/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();  }  | 

