aboutsummaryrefslogtreecommitdiff
path: root/test/Parser/objcxx11-attributes.mm
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2012-04-14 00:33:13 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2012-04-14 00:33:13 +0000
commit534986f2b21e6050bf00163cd6423fd92155a6ed (patch)
treea8e8a492336134952e331deec690f010f5c7b71f /test/Parser/objcxx11-attributes.mm
parent9cdd1e3450a07c1bafc32c96f1db88084497f282 (diff)
Add an AttributedStmt type to represent a statement with C++11 attributes
attached. Since we do not support any attributes which appertain to a statement (yet), testing of this is necessarily quite minimal. Patch by Alexander Kornienko! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154723 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Parser/objcxx11-attributes.mm')
-rw-r--r--test/Parser/objcxx11-attributes.mm8
1 files changed, 5 insertions, 3 deletions
diff --git a/test/Parser/objcxx11-attributes.mm b/test/Parser/objcxx11-attributes.mm
index 0875b66e21..0c91392978 100644
--- a/test/Parser/objcxx11-attributes.mm
+++ b/test/Parser/objcxx11-attributes.mm
@@ -31,15 +31,17 @@ void f(X *noreturn) {
// An attribute is OK.
[[]];
- [[int(), noreturn]];
+ [[int(), noreturn]]; // expected-warning {{attribute noreturn cannot be specified on a statement}}
[[class, test(foo 'x' bar),,,]];
- [[bitand, noreturn]];
+ [[bitand, noreturn]]; // expected-warning {{attribute noreturn cannot be specified on a statement}}
[[noreturn]]int(e)();
+ int e2(); // expected-warning {{interpreted as a function declaration}} expected-note{{}}
// A function taking a noreturn function.
- int(f)([[noreturn]] int());
+ int(f)([[noreturn]] int()); // expected-note {{here}}
f(e);
+ f(e2); // expected-error {{cannot initialize a parameter of type 'int (*)() __attribute__((noreturn))' with an lvalue of type 'int ()'}}
// Variables initialized by a message send.
int(g)([[noreturn getSelf] getSize]);