Home | History | Annotate | Download | only in SemaCXX
      1 // RUN: %clang_cc1 %s -fsyntax-only -pedantic -verify
      2 
      3 void foo() {
      4   return foo();
      5 }
      6 
      7 // PR6451 - C++ Jump checking
      8 struct X {
      9   X();
     10 };
     11 
     12 void test2() {
     13   goto later;  // expected-error {{cannot jump}}
     14   X x;         // expected-note {{jump bypasses variable initialization}}
     15 later:
     16   ;
     17 }
     18 
     19 namespace PR6536 {
     20   struct A {};
     21   void a() { goto out; A x; out: return; }
     22 }
     23 
     24 void test3() {
     25     __asm__ ("":"+r" (test3)); // expected-error{{invalid lvalue in asm output}}
     26 }
     27 
     28 void test4();                // expected-note{{possible target for call}}
     29 void test4(int) {            // expected-note{{possible target for call}}
     30   // expected-error@+1{{overloaded function could not be resolved}}
     31   __asm__ ("":"+r" (test4)); // expected-error{{invalid lvalue in asm output}}
     32 }
     33 void test5() {
     34   char buf[1];
     35   __asm__ ("":"+r" (buf));
     36 }
     37 
     38 struct MMX_t {};
     39 void test6() { __asm__("" : "=m"(*(MMX_t *)0)); }
     40