summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2010-04-17 20:17:31 +0000
committerChandler Carruth <chandlerc@gmail.com>2010-04-17 20:17:31 +0000
commite03aa55bfdf5f8f63c1c6b4240b71e1027750d0b (patch)
tree605c935620f5809952026cccc0a159a7239c4e89 /clang/lib/Driver
parent11e5140db94dc3f27108f313135d0664d3ccd421 (diff)
downloadbcm5719-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.cpp10
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))
OpenPOWER on IntegriCloud