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