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/test/Sema | |
| parent | 5d461c96bdbcc82f4fd6eeef88633f6f6c06c650 (diff) | |
| download | bcm5719-llvm-150ca5309e7c321689527a60e6e7b8d636f20a79.tar.gz bcm5719-llvm-150ca5309e7c321689527a60e6e7b8d636f20a79.zip | |
[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/test/Sema')
| -rw-r--r-- | clang/test/Sema/pr32985.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/Sema/pr32985.c b/clang/test/Sema/pr32985.c new file mode 100644 index 00000000000..f61cea4e731 --- /dev/null +++ b/clang/test/Sema/pr32985.c @@ -0,0 +1,20 @@ +/* +RUN: %clang_cc1 %s -std=gnu89 -fsyntax-only 2>&1 | FileCheck -check-prefix=CHECK-GNU89 %s -allow-empty +RUN: %clang_cc1 %s -std=gnu89 -pedantic -fsyntax-only 2>&1 | FileCheck -check-prefix=CHECK-GNU89-PEDANTIC %s +*/ + +typedef const int t; +const t c_i; +/* +CHECK-GNU89-NOT: 7:1: warning: duplicate 'const' declaration specifier +CHECK-GNU89-PEDANTIC: 7:1: warning: duplicate 'const' declaration specifier +*/ + +const int c_i2; +const typeof(c_i2) c_i3; +/* +CHECK-GNU89-NOT: 14:7: warning: extension used +CHECK-GNU89-NOT: 14:1: warning: duplicate 'const' declaration specifier +CHECK-GNU89-PEDANTIC: 14:7: warning: extension used +CHECK-GNU89-PEDANTIC: 14:1: warning: duplicate 'const' declaration specifier +*/ |

