1 | // RUN: %clang_cc1 -triple arm-unknown-linux -verify -E %s -o - | FileCheck %s |
2 | |
3 | // CHECK: always_inline |
4 | #if __has_attribute(always_inline) |
5 | int always_inline(); |
6 | #endif |
7 | |
8 | // CHECK: __always_inline__ |
9 | #if __has_attribute(__always_inline__) |
10 | int __always_inline__(); |
11 | #endif |
12 | |
13 | // CHECK: no_dummy_attribute |
14 | #if !__has_attribute(dummy_attribute) |
15 | int no_dummy_attribute(); |
16 | #endif |
17 | |
18 | // CHECK: has_has_attribute |
19 | #ifdef __has_attribute |
20 | int has_has_attribute(); |
21 | #endif |
22 | |
23 | // CHECK: has_something_we_dont_have |
24 | #if !__has_attribute(something_we_dont_have) |
25 | int has_something_we_dont_have(); |
26 | #endif |
27 | |
28 | // rdar://10253857 |
29 | #if __has_attribute(__const) |
30 | int fn3() __attribute__ ((__const)); |
31 | #endif |
32 | |
33 | #if __has_attribute(const) |
34 | static int constFunction() __attribute__((const)); |
35 | #endif |
36 | |
37 | // CHECK: has_no_volatile_attribute |
38 | #if !__has_attribute(volatile) |
39 | int has_no_volatile_attribute(); |
40 | #endif |
41 | |
42 | // CHECK: has_arm_interrupt |
43 | #if __has_attribute(interrupt) |
44 | int has_arm_interrupt(); |
45 | #endif |
46 | |
47 | // CHECK: does_not_have_dllexport |
48 | #if !__has_attribute(dllexport) |
49 | int does_not_have_dllexport(); |
50 | #endif |
51 | |
52 | // CHECK: does_not_have_uuid |
53 | #if !__has_attribute(uuid) |
54 | int does_not_have_uuid |
55 | #endif |
56 | |
57 | #if __has_cpp_attribute(selectany) // expected-error {{function-like macro '__has_cpp_attribute' is not defined}} |
58 | #endif |
59 | |