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