Revert "[llvm] Improve llvm.objectsize computation by computing GEP, alloca and mallo...
[llvm-project.git] / clang / test / Preprocessor / has_attribute.c
blob0ba664a53e649621608e85685cc30d472e6ce6e4
1 // RUN: %clang_cc1 -triple arm-unknown-linux -verify -E %s -o - | FileCheck %s
3 // CHECK: always_inline
4 #if __has_attribute(always_inline)
5 int always_inline();
6 #endif
8 // CHECK: __always_inline__
9 #if __has_attribute(__always_inline__)
10 int __always_inline__();
11 #endif
13 // CHECK: warn_unused_result
14 #if __has_attribute(warn_unused_result)
15 int warn_unused_result();
16 #endif
18 // CHECK: no_dummy_attribute
19 #if !__has_attribute(dummy_attribute)
20 int no_dummy_attribute();
21 #endif
23 // CHECK: has_has_attribute
24 #ifdef __has_attribute
25 int has_has_attribute();
26 #endif
28 // CHECK: has_something_we_dont_have
29 #if !__has_attribute(something_we_dont_have)
30 int has_something_we_dont_have();
31 #endif
33 #if __has_attribute(__const)
34 int fn3() __attribute__ ((__const));
35 #endif
37 #if __has_attribute(const)
38 static int constFunction() __attribute__((const));
39 #endif
41 // CHECK: has_no_volatile_attribute
42 #if !__has_attribute(volatile)
43 int has_no_volatile_attribute();
44 #endif
46 // CHECK: has_arm_interrupt
47 #if __has_attribute(interrupt)
48 int has_arm_interrupt();
49 #endif
51 // CHECK: does_not_have_dllexport
52 #if !__has_attribute(dllexport)
53 int does_not_have_dllexport();
54 #endif
56 // CHECK: does_not_have_uuid
57 #if !__has_attribute(uuid)
58 int does_not_have_uuid
59 #endif
61 #if __has_cpp_attribute(selectany) // expected-error {{function-like macro '__has_cpp_attribute' is not defined}}
62 #endif
64 // Test that macro expansion of the builtin argument works.
65 #define F fallthrough
67 #if __has_attribute(F)
68 int has_fallthrough;
69 #endif
70 // CHECK: int has_fallthrough;