diff options
| author | Filipe Cabecinhas <me@filcab.net> | 2015-03-20 23:33:23 +0000 |
|---|---|---|
| committer | Filipe Cabecinhas <me@filcab.net> | 2015-03-20 23:33:23 +0000 |
| commit | 3e707d98eeb2c4af2f2ee473c97ee5adc954ec66 (patch) | |
| tree | e34d1e845243d75573cf4d6d4935cd0bee66a853 | |
| parent | 008067aca9a49a13de3851bfae571a8a4e191b76 (diff) | |
| download | bcm5719-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.cpp | 2 | ||||
| -rw-r--r-- | clang/test/Driver/rtti-options.cpp | 4 |
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 |

