summaryrefslogtreecommitdiff
path: root/test/Sema/c2x-maybe_unused.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/Sema/c2x-maybe_unused.c')
-rw-r--r--test/Sema/c2x-maybe_unused.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/Sema/c2x-maybe_unused.c b/test/Sema/c2x-maybe_unused.c
new file mode 100644
index 000000000000..816cf7835fa9
--- /dev/null
+++ b/test/Sema/c2x-maybe_unused.c
@@ -0,0 +1,35 @@
+// RUN: %clang_cc1 -fsyntax-only -Wunused -fdouble-square-bracket-attributes -verify %s
+
+struct [[maybe_unused]] S1 { // ok
+ int a [[maybe_unused]];
+};
+
+enum [[maybe_unused]] E1 {
+ EnumVal [[maybe_unused]]
+};
+
+[[maybe_unused]] void unused_func([[maybe_unused]] int parm) {
+ typedef int maybe_unused_int [[maybe_unused]];
+ [[maybe_unused]] int I;
+}
+
+void f1(void) {
+ int x; // expected-warning {{unused variable}}
+ typedef int I; // expected-warning {{unused typedef 'I'}}
+
+ // Should not warn about these due to not being used.
+ [[maybe_unused]] int y;
+ typedef int maybe_unused_int [[maybe_unused]];
+
+ // Should not warn about these uses.
+ struct S1 s;
+ maybe_unused_int test;
+ y = 12;
+}
+
+void f2(void);
+[[maybe_unused]] void f2(void);
+
+void f2(void) {
+}
+