1 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++0x %s
3 // Declaration syntax checks
7 int array_attr
[1] [[]];
8 [[align(8)]] int aligned_attr
;
9 [[test::valid(for 42 [very
] **** '+' symbols went on a trip
; the end
.)]]
12 class [[]] class_attr
{};
13 extern "C++" [[]] int extern_attr
;
14 template <typename T
> [[]] void template_attr ();
16 int comma_attr
[[,]]; // expected-error {{expected identifier}}
17 int scope_attr
[[foo::]]; // expected-error {{expected identifier}}
18 int & [[]] ref_attr
= after_attr
; // expected-error {{an attribute list cannot appear here}}
20 void after_const_attr () const [[]]; // expected-error {{expected expression}}
22 extern "C++" [[]] { } // expected-error {{an attribute list cannot appear here}}
23 [[]] template <typename T
> void before_template_attr (); // expected-error {{an attribute list cannot appear here}}
24 [[]] namespace ns
{ int i
; } // expected-error {{an attribute list cannot appear here}}
25 [[]] static_assert(true, ""); //expected-error {{an attribute list cannot appear here}}
26 [[]] asm(""); // expected-error {{an attribute list cannot appear here}}
28 [[]] using ns::i
; // expected-error {{an attribute list cannot appear here}}
29 [[]] using namespace ns
;
32 [[align
]] int aligned_no_params
; // expected-error {{C++0x attribute 'align' must have an argument list}}
33 [[align(i
)]] int aligned_nonconst
; // expected-error {{'aligned' attribute requires integer constant}}
56 } [[]] catch (...) { // expected-error {{an attribute list cannot appear here}}