diff options
author | Nick Desaulniers <ndesaulniers@google.com> | 2018-10-03 23:09:29 +0000 |
---|---|---|
committer | Nick Desaulniers <ndesaulniers@google.com> | 2018-10-03 23:09:29 +0000 |
commit | 150ca5309e7c321689527a60e6e7b8d636f20a79 (patch) | |
tree | 801d714dfab9f296b4f87a9c7a002b6b554eb559 /clang/lib/Parse/ParseDecl.cpp | |
parent | 5d461c96bdbcc82f4fd6eeef88633f6f6c06c650 (diff) | |
download | llvm-150ca5309e7c321689527a60e6e7b8d636f20a79.zip llvm-150ca5309e7c321689527a60e6e7b8d636f20a79.tar.gz llvm-150ca5309e7c321689527a60e6e7b8d636f20a79.tar.bz2 |
[SEMA] split ExtWarn dupl-decl-spec's into Extension and ExtWarn
Summary:
For types deduced from typedef's and typeof's, don't warn for duplicate
declaration specifiers in C90 unless -pedantic.
Create a third diagnostic type for duplicate declaration specifiers.
Previously, we had an ExtWarn and a Warning. This change adds a third,
Extension, which only warns when -pedantic is set, staying silent
otherwise.
Fixes PR32985.
Reviewers: rsmith
Reviewed By: rsmith
Subscribers: srhines, cfe-commits
Differential Revision: https://reviews.llvm.org/D52849
llvm-svn: 343740
Diffstat (limited to 'clang/lib/Parse/ParseDecl.cpp')
-rw-r--r-- | clang/lib/Parse/ParseDecl.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index bbcc860..643ddfa 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -3838,7 +3838,8 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS, assert(PrevSpec && "Method did not return previous specifier!"); assert(DiagID); - if (DiagID == diag::ext_duplicate_declspec) + if (DiagID == diag::ext_duplicate_declspec || + DiagID == diag::ext_warn_duplicate_declspec) Diag(Tok, DiagID) << PrevSpec << FixItHint::CreateRemoval(Tok.getLocation()); else if (DiagID == diag::err_opencl_unknown_type_specifier) { |