diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2010-04-17 20:17:31 +0000 |
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2010-04-17 20:17:31 +0000 |
| commit | e03aa55bfdf5f8f63c1c6b4240b71e1027750d0b (patch) | |
| tree | 605c935620f5809952026cccc0a159a7239c4e89 /clang/lib/Driver | |
| parent | 11e5140db94dc3f27108f313135d0664d3ccd421 (diff) | |
| download | bcm5719-llvm-e03aa55bfdf5f8f63c1c6b4240b71e1027750d0b.tar.gz bcm5719-llvm-e03aa55bfdf5f8f63c1c6b4240b71e1027750d0b.zip | |
Add support for '-fgnu-keywords' and '-fasm' to Clang's driver. They are not
implemented precisely the same as GCC, but the distinction GCC makes isn't
useful to represent. This allows parsing code which uses GCC-specific keywords
('asm', etc.) without parsing in a fully GNU mode.
llvm-svn: 101667
Diffstat (limited to 'clang/lib/Driver')
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 899eb4841ab..d9df471714a 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -1208,6 +1208,16 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, getToolChain().getTriple().getOS() == llvm::Triple::Win32)) CmdArgs.push_back("-fms-extensions"); + // -fgnu-keywords default varies depending on language; only pass if + // specified. + if (Arg *A = Args.getLastArg(options::OPT_fgnu_keywords, + options::OPT_fno_gnu_keywords)) { + if (A->getOption().matches(options::OPT_fgnu_keywords)) + CmdArgs.push_back("-fgnu-keywords"); + else + CmdArgs.push_back("-fno-gnu-keywords"); + } + // -fnext-runtime is default. if (!Args.hasFlag(options::OPT_fnext_runtime, options::OPT_fgnu_runtime, getToolChain().getTriple().getOS() == llvm::Triple::Darwin)) |

