// RUN: %clang_cc1 %s -fsyntax-only -pedantic -verify
voidfoo(){returnfoo();}// PR6451 - C++ Jump checking
structX{X();};voidtest2(){goto later;// expected-error {{cannot jump}}
X x;// expected-note {{jump bypasses variable initialization}}
later:;}namespacePR6536{structA{};voida(){goto out; A x; out:return;}}voidtest3(){__asm__("":"+r"(test3));// expected-error{{invalid lvalue in asm output}}
}voidtest4();// expected-note{{possible target for call}}
voidtest4(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}}
}voidtest5(){char buf[1];__asm__("":"+r"(buf));}structMMX_t{};voidtest6(){__asm__("":"=m"(*(MMX_t *)0));}template<typename T>
T test7(T v){return({// expected-warning{{use of GNU statement expression extension}}
T a = v;
a;;;});}voidtest8(){int a =test7(1);double b =test7(2.0);}