aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX/cxx11-attr-print.cpp
blob: 985d9a44feff5df712f20e793cfb5b949e3fd98f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// RUN: %clang_cc1 -std=c++11 -ast-print %s | FileCheck %s
// FIXME: align attribute print

// CHECK: int x __attribute__((aligned(4, 0)));
int x __attribute__((aligned(4)));

// CHECK: int y __attribute__((align(4, 0)));
int y __attribute__((align(4)));

// CHECK: gnu::aligned(4, 0)]];
int z [[gnu::aligned(4)]];

// CHECK: __attribute__((deprecated("warning")));
int a __attribute__((deprecated("warning")));

// CHECK: gnu::deprecated("warning")]];
int b [[gnu::deprecated("warning")]];

// CHECK: void foo() __attribute__((const));
void foo() __attribute__((const));

// CHECK: void bar() __attribute__((__const));
void bar() __attribute__((__const));

// CHECK: int f1() __attribute__((warn_unused_result));
int f1() __attribute__((warn_unused_result));

// CHECK: clang::warn_unused_result]];
int f2 [[clang::warn_unused_result]] ();

// CHECK: gnu::warn_unused_result]];
int f3 [[gnu::warn_unused_result]] ();

// FIXME: ast-print need to print C++11
// attribute after function declare-id.
// CHECK: noreturn]];
void f4 [[noreturn]] ();

// CHECK: std::noreturn]];
void f5 [[std::noreturn]] ();

// CHECK: __attribute__((gnu_inline));
inline void f6() __attribute__((gnu_inline));

// CHECK: gnu::gnu_inline]];
inline void f7 [[gnu::gnu_inline]] ();

// arguments printing
// CHECK: __attribute__((format("printf", 2, 3)));
void f8 (void *, const char *, ...) __attribute__ ((format (printf, 2, 3)));