diff options
Diffstat (limited to 'test/SemaCXX/statements.cpp')
-rw-r--r-- | test/SemaCXX/statements.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/test/SemaCXX/statements.cpp b/test/SemaCXX/statements.cpp index 6d04c84..15b0b50 100644 --- a/test/SemaCXX/statements.cpp +++ b/test/SemaCXX/statements.cpp @@ -10,7 +10,7 @@ struct X { }; void test2() { - goto later; // expected-error {{goto into protected scope}} + goto later; // expected-error {{cannot jump}} X x; // expected-note {{jump bypasses variable initialization}} later: ; @@ -20,3 +20,20 @@ namespace PR6536 { struct A {}; void a() { goto out; A x; out: return; } } + +void test3() { + __asm__ ("":"+r" (test3)); // expected-error{{invalid lvalue in asm output}} +} + +void test4(); // expected-note{{possible target for call}} +void test4(int) { // expected-note{{possible target for call}} + // expected-error@+1{{overloaded function could not be resolved}} + __asm__ ("":"+r" (test4)); // expected-error{{invalid lvalue in asm output}} +} +void test5() { + char buf[1]; + __asm__ ("":"+r" (buf)); +} + +struct MMX_t {}; +void test6() { __asm__("" : "=m"(*(MMX_t *)0)); } |