blob: 4970dc5904230ae9ea3d8e724dbf80956705d74c [file] [log] [blame]
Aaron Ballman416b1272015-05-11 14:09:50 +00001// RUN: %clang_cc1 -triple arm-unknown-linux -verify -E %s -o - | FileCheck %s
Jean-Daniel Dupas7598fad2012-03-01 17:45:53 +00002
3// CHECK: always_inline
4#if __has_attribute(always_inline)
5int always_inline();
Jean-Daniel Dupas908f1302012-03-01 14:53:16 +00006#endif
7
Jean-Daniel Dupas7598fad2012-03-01 17:45:53 +00008// CHECK: __always_inline__
9#if __has_attribute(__always_inline__)
10int __always_inline__();
Jean-Daniel Dupas908f1302012-03-01 14:53:16 +000011#endif
12
Jean-Daniel Dupas7598fad2012-03-01 17:45:53 +000013// CHECK: no_dummy_attribute
14#if !__has_attribute(dummy_attribute)
15int no_dummy_attribute();
16#endif
17
18// CHECK: has_has_attribute
19#ifdef __has_attribute
20int has_has_attribute();
21#endif
22
23// CHECK: has_something_we_dont_have
24#if !__has_attribute(something_we_dont_have)
25int has_something_we_dont_have();
Jean-Daniel Dupas908f1302012-03-01 14:53:16 +000026#endif
Fariborz Jahanian7513fa32012-08-13 21:15:02 +000027
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
Richard Smithbaf29122013-07-09 00:57:56 +000037// CHECK: has_no_volatile_attribute
38#if !__has_attribute(volatile)
39int has_no_volatile_attribute();
40#endif
Aaron Ballman0fa06d82014-01-09 22:57:44 +000041
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
Aaron Ballmana6f759e2014-12-05 15:24:55 +000051
52// CHECK: does_not_have_uuid
53#if !__has_attribute(uuid)
54 int does_not_have_uuid
55#endif
Aaron Ballman416b1272015-05-11 14:09:50 +000056
Richard Smith4d247e72016-04-16 00:07:09 +000057#if __has_cpp_attribute(selectany) // expected-error {{function-like macro '__has_cpp_attribute' is not defined}}
Aaron Ballman416b1272015-05-11 14:09:50 +000058#endif