xref: /aosp_15_r20/external/clang/test/Sema/attr-print.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 %s -ast-print -fms-extensions | FileCheck %s
2*67e74705SXin Li 
3*67e74705SXin Li // CHECK: int x __attribute__((aligned(4)));
4*67e74705SXin Li int x __attribute__((aligned(4)));
5*67e74705SXin Li 
6*67e74705SXin Li // FIXME: Print this at a valid location for a __declspec attr.
7*67e74705SXin Li // CHECK: int y __declspec(align(4));
8*67e74705SXin Li __declspec(align(4)) int y;
9*67e74705SXin Li 
10*67e74705SXin Li // CHECK: void foo() __attribute__((const));
11*67e74705SXin Li void foo() __attribute__((const));
12*67e74705SXin Li 
13*67e74705SXin Li // CHECK: void bar() __attribute__((__const));
14*67e74705SXin Li void bar() __attribute__((__const));
15*67e74705SXin Li 
16*67e74705SXin Li // CHECK: int * __ptr32 p32;
17*67e74705SXin Li int * __ptr32 p32;
18*67e74705SXin Li 
19*67e74705SXin Li // CHECK: int * __ptr64 p64;
20*67e74705SXin Li int * __ptr64 p64;
21*67e74705SXin Li 
22*67e74705SXin Li // TODO: the Type Printer has no way to specify the order to print attributes
23*67e74705SXin Li // in, and so it currently always prints them in reverse order. Fix this.
24*67e74705SXin Li // CHECK: int * __ptr32 __uptr p32_2;
25*67e74705SXin Li int * __uptr __ptr32 p32_2;
26*67e74705SXin Li 
27*67e74705SXin Li // CHECK: int * __ptr64 __sptr p64_2;
28*67e74705SXin Li int * __sptr __ptr64 p64_2;
29*67e74705SXin Li 
30*67e74705SXin Li // CHECK: int * __ptr32 __uptr p32_3;
31*67e74705SXin Li int * __uptr __ptr32 p32_3;
32*67e74705SXin Li 
33*67e74705SXin Li // CHECK: int * __sptr * __ptr32 ppsp32;
34*67e74705SXin Li int * __sptr * __ptr32 ppsp32;
35*67e74705SXin Li 
36*67e74705SXin Li // CHECK: __attribute__((availability(macos, strict, introduced=10.6)));
37*67e74705SXin Li void f6(int) __attribute__((availability(macosx,strict,introduced=10.6)));
38