Clang Project

clang_source_code/test/Sema/c2x-maybe_unused.c
1// RUN: %clang_cc1 -fsyntax-only -Wunused -fdouble-square-bracket-attributes -verify %s
2
3struct [[maybe_unused]] S1 { // ok
4  int a [[maybe_unused]];
5};
6
7enum [[maybe_unused]] E1 {
8  EnumVal [[maybe_unused]]
9};
10
11[[maybe_unused]] void unused_func([[maybe_unused]] int parm) {
12  typedef int maybe_unused_int [[maybe_unused]];
13  [[maybe_unused]] int I;
14}
15
16void f1(void) {
17  int x; // expected-warning {{unused variable}}
18  typedef int I; // expected-warning {{unused typedef 'I'}}
19
20  // Should not warn about these due to not being used.
21  [[maybe_unused]] int y;
22  typedef int maybe_unused_int [[maybe_unused]];
23
24  // Should not warn about these uses.
25  struct S1 s;
26  maybe_unused_int test;
27  y = 12;
28}
29
30void f2(void);
31[[maybe_unused]] void f2(void);
32
33void f2(void) {
34}
35
36