summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFilipe Cabecinhas <me@filcab.net>2015-03-20 23:33:23 +0000
committerFilipe Cabecinhas <me@filcab.net>2015-03-20 23:33:23 +0000
commit3e707d98eeb2c4af2f2ee473c97ee5adc954ec66 (patch)
treee34d1e845243d75573cf4d6d4935cd0bee66a853
parent008067aca9a49a13de3851bfae571a8a4e191b76 (diff)
downloadbcm5719-llvm-3e707d98eeb2c4af2f2ee473c97ee5adc954ec66.tar.gz
bcm5719-llvm-3e707d98eeb2c4af2f2ee473c97ee5adc954ec66.zip
Don't claim exception related arguments when looking at RTTIMode
Summary: We were claiming the -f*exceptions arguments when looking for the RTTIMode. This makes us not warn about unused arguments if compiling a C file with -fcxx-exceptions. This patch fixes it by not claiming the exception-related arguments at that point. Reviewers: rsmith, samsonov Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D8507 llvm-svn: 232860
-rw-r--r--clang/lib/Driver/ToolChain.cpp2
-rw-r--r--clang/test/Driver/rtti-options.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index d71b903ead5..52e8603851b 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -48,7 +48,7 @@ static ToolChain::RTTIMode CalculateRTTIMode(const ArgList &Args,
// On the PS4, turning on c++ exceptions turns on rtti.
// We're assuming that, if we see -fexceptions, rtti gets turned on.
- Arg *Exceptions = Args.getLastArg(
+ Arg *Exceptions = Args.getLastArgNoClaim(
options::OPT_fcxx_exceptions, options::OPT_fno_cxx_exceptions,
options::OPT_fexceptions, options::OPT_fno_exceptions);
if (Exceptions &&
diff --git a/clang/test/Driver/rtti-options.cpp b/clang/test/Driver/rtti-options.cpp
index a14953ebfbd..087ee216236 100644
--- a/clang/test/Driver/rtti-options.cpp
+++ b/clang/test/Driver/rtti-options.cpp
@@ -3,6 +3,10 @@
// No warnings/errors should be emitted for unknown, except if combining
// the vptr sanitizer with -fno-rtti
+// Special case: -fcxx-exceptions in C code should warn about unused arguments
+// RUN: %clang -x c -### -c -fcxx-exceptions %s 2>&1 | FileCheck -check-prefix=CHECK-UNUSED %s
+// CHECK-UNUSED: warning: argument unused during compilation: '-fcxx-exceptions'
+
// RUN: %clang -### -c -fno-rtti -frtti %s 2>&1 | FileCheck -check-prefix=CHECK-RTTI %s
// RUN: %clang -### -c -frtti -fno-rtti %s 2>&1 | FileCheck -check-prefix=CHECK-NO-RTTI %s
OpenPOWER on IntegriCloud