blob: 3cc6d00f0873af662b860634b4786d02f2f08c30 [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
20// CHECK: void foo() __attribute__((const));
21void foo() __attribute__((const));
22
23// CHECK: void bar() __attribute__((__const));
24void bar() __attribute__((__const));
25
26// CHECK: int f1() __attribute__((warn_unused_result));
27int f1() __attribute__((warn_unused_result));
28
29// CHECK: clang::warn_unused_result]];
30int f2 [[clang::warn_unused_result]] ();
31
32// CHECK: gnu::warn_unused_result]];
33int f3 [[gnu::warn_unused_result]] ();
34
35// FIXME: ast-print need to print C++11
36// attribute after function declare-id.
37// CHECK: noreturn]];
38void f4 [[noreturn]] ();
39
40// CHECK: std::noreturn]];
41void f5 [[std::noreturn]] ();
42
43// CHECK: __attribute__((gnu_inline));
44inline void f6() __attribute__((gnu_inline));
45
46// CHECK: gnu::gnu_inline]];
47inline void f7 [[gnu::gnu_inline]] ();
48
49// arguments printing
50// CHECK: __attribute__((format("printf", 2, 3)));
51void f8 (void *, const char *, ...) __attribute__ ((format (printf, 2, 3)));