1 // RUN: %clang_cc1 %s -ast-print -fms-extensions | FileCheck %s
2 
3 // CHECK: int x __attribute__((aligned(4)));
4 int x __attribute__((aligned(4)));
5 
6 // FIXME: Print this at a valid location for a __declspec attr.
7 // CHECK: int y __declspec(align(4));
8 __declspec(align(4)) int y;
9 
10 // CHECK: void foo() __attribute__((const));
11 void foo() __attribute__((const));
12 
13 // CHECK: void bar() __attribute__((__const));
14 void bar() __attribute__((__const));
15 
16 // FIXME: Print this with correct format and order.
17 // CHECK: void foo1() __attribute__((pure)) __attribute__((noinline));
18 void foo1() __attribute__((noinline, pure));
19 
20 // CHECK: typedef int Small1 __attribute__((mode(byte)));
21 typedef int Small1 __attribute__((mode(byte)));
22 
23 // CHECK: int small __attribute__((mode(byte)));
24 int small __attribute__((mode(byte)));
25 
26 // CHECK: int v __attribute__((visibility("hidden")));
27 int v __attribute__((visibility("hidden")));
28 
29 // CHECK: char *PR24565() __attribute__((malloc))
30 char *PR24565() __attribute__((__malloc__));
31 
32 // CHECK: class __attribute__((consumable("unknown"))) AttrTester1
33 class __attribute__((consumable(unknown))) AttrTester1 {
34   // CHECK: void callableWhen() __attribute__((callable_when("unconsumed", "consumed")));
35   void callableWhen()  __attribute__((callable_when("unconsumed", "consumed")));
36 };
37 
38 // CHECK: class __single_inheritance SingleInheritance;
39 class __single_inheritance SingleInheritance;
40 
41 // CHECK: class __multiple_inheritance MultipleInheritance;
42 class __multiple_inheritance MultipleInheritance;
43 
44 // CHECK: class __virtual_inheritance VirtualInheritance;
45 class __virtual_inheritance VirtualInheritance;
46