blob: 985d9a44feff5df712f20e793cfb5b949e3fd98f [file] [log] [blame]
// 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)));