diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2010-09-25 18:10:05 +0000 | 
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2010-09-25 18:10:05 +0000 | 
| commit | f247675c55f8c34341c8ac47beae24fb9586d394 (patch) | |
| tree | fa55b224dd6a6b9dface2f0986833475bfb4a3d4 /clang/lib | |
| parent | aa2ad5730c89c73a92f697c178d99ba3ebdef262 (diff) | |
| download | bcm5719-llvm-f247675c55f8c34341c8ac47beae24fb9586d394.tar.gz bcm5719-llvm-f247675c55f8c34341c8ac47beae24fb9586d394.zip  | |
Driver/Linux: Translate rewritten lib options back to standard -l form when
using generic GCC tools.
llvm-svn: 114793
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 13 | 
1 files changed, 11 insertions, 2 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index ff4af221e3d..0701c5fa7b5 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -1693,9 +1693,18 @@ void gcc::Common::ConstructJob(Compilation &C, const JobAction &JA,      if (II.isFilename())        CmdArgs.push_back(II.getFilename()); -    else +    else { +      const Arg &A = II.getInputArg(); + +      // Reverse translate some rewritten options. +      if (A.getOption().matches(options::OPT_Z_reserved_lib_stdcxx)) { +        CmdArgs.push_back("-lstdc++"); +        continue; +      } +        // Don't render as input, we need gcc to do the translations. -      II.getInputArg().render(Args, CmdArgs); +      A.render(Args, CmdArgs); +    }    }    const char *GCCName = getToolChain().getDriver().getCCCGenericGCCName().c_str();  | 

