blob: 77df65a45cdfe99a54840c20f6a530086d105410 [file] [log] [blame]
Richard Smith0cdcc982013-01-29 01:24:26 +00001// RUN: %clang_cc1 -std=c++11 -ast-print -fms-extensions %s | FileCheck %s
Michael Han99315932013-01-24 16:46:58 +00002// FIXME: align attribute print
3
4// CHECK: int x __attribute__((aligned(4, 0)));
5int x __attribute__((aligned(4)));
6
Richard Smith0cdcc982013-01-29 01:24:26 +00007// FIXME: Print this at a valid location for a __declspec attr.
8// CHECK: int y __declspec(align(4, 1));
9__declspec(align(4)) int y;
Michael Han99315932013-01-24 16:46:58 +000010
11// CHECK: gnu::aligned(4, 0)]];
12int z [[gnu::aligned(4)]];
13
14// CHECK: __attribute__((deprecated("warning")));
15int a __attribute__((deprecated("warning")));
16
17// CHECK: gnu::deprecated("warning")]];
18int b [[gnu::deprecated("warning")]];
19
Richard Smithd11c7a12013-01-29 01:48:07 +000020// CHECK: int cxx11_alignas alignas(4, 0);
21alignas(4) int cxx11_alignas;
22
23// CHECK: int c11_alignas _Alignas(alignof(int), 0);
24_Alignas(int) int c11_alignas;
25
Michael Han99315932013-01-24 16:46:58 +000026// CHECK: void foo() __attribute__((const));
27void foo() __attribute__((const));
28
29// CHECK: void bar() __attribute__((__const));
30void bar() __attribute__((__const));
31
32// CHECK: int f1() __attribute__((warn_unused_result));
33int f1() __attribute__((warn_unused_result));
34
35// CHECK: clang::warn_unused_result]];
36int f2 [[clang::warn_unused_result]] ();
37
38// CHECK: gnu::warn_unused_result]];
39int f3 [[gnu::warn_unused_result]] ();
40
41// FIXME: ast-print need to print C++11
42// attribute after function declare-id.
43// CHECK: noreturn]];
44void f4 [[noreturn]] ();
45
46// CHECK: std::noreturn]];
47void f5 [[std::noreturn]] ();
48
49// CHECK: __attribute__((gnu_inline));
50inline void f6() __attribute__((gnu_inline));
51
52// CHECK: gnu::gnu_inline]];
53inline void f7 [[gnu::gnu_inline]] ();
54
55// arguments printing
56// CHECK: __attribute__((format("printf", 2, 3)));
57void f8 (void *, const char *, ...) __attribute__ ((format (printf, 2, 3)));