1 // RUN: %clang_cc1 -fdouble-square-bracket-attributes -std=c11 -E %s -o - | FileCheck %s
2 // RUN: %clang_cc1 -std=c2x -E %s -o - | FileCheck %s
3 
4 // CHECK: has_fallthrough
5 #if __has_c_attribute(fallthrough)
6   int has_fallthrough();
7 #endif
8 
9 // CHECK: does_not_have_selectany
10 #if !__has_c_attribute(selectany)
11   int does_not_have_selectany();
12 #endif
13 
14 // CHECK: has_nodiscard_underscore
15 #if __has_c_attribute(__nodiscard__)
16   int has_nodiscard_underscore();
17 #endif
18 
19 // CHECK: has_clang_annotate
20 #if __has_c_attribute(clang::annotate)
21   int has_clang_annotate();
22 #endif
23