1 // RUN: %clang_cc1 %s -std=c++11 -emit-llvm-only 2 // RUN: %clang_cc1 -emit-obj -o %t -debug-info-kind=line-tables-only -std=c++11 %s 3 // RUN: %clang_cc1 -emit-obj -o %t -debug-info-kind=line-directives-only -std=c++11 %s 4 // CHECK that we don't crash. 5 6 // PR11676's example is ill-formed: 7 /* 8 union _XEvent { 9 }; 10 void ProcessEvent() { 11 _XEvent pluginEvent = _XEvent(); 12 } 13 */ 14 15 // Example from PR11665: f()16void f() { 17 union U { int field; } u = U(); 18 (void)U().field; 19 } 20 21 namespace PR17476 { 22 struct string { 23 string(const char *__s); 24 string &operator+=(const string &__str); 25 }; 26 finalizeDefaultAtomValues()27template <class ELFT> void finalizeDefaultAtomValues() { 28 auto startEnd = [&](const char * sym)->void { 29 string start("__"); 30 start += sym; 31 } 32 ; 33 startEnd("preinit_array"); 34 } 35 f()36void f() { finalizeDefaultAtomValues<int>(); } 37 } 38