summaryrefslogtreecommitdiffstats
path: root/clang/test/Sema
diff options
context:
space:
mode:
authorNick Desaulniers <ndesaulniers@google.com>2018-10-03 23:09:29 +0000
committerNick Desaulniers <ndesaulniers@google.com>2018-10-03 23:09:29 +0000
commit150ca5309e7c321689527a60e6e7b8d636f20a79 (patch)
tree801d714dfab9f296b4f87a9c7a002b6b554eb559 /clang/test/Sema
parent5d461c96bdbcc82f4fd6eeef88633f6f6c06c650 (diff)
downloadbcm5719-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.c20
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
+*/
OpenPOWER on IntegriCloud