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/*
7union _XEvent {
8};
9void ProcessEvent() {
10  _XEvent pluginEvent = _XEvent();
11}
12*/
13
14// Example from PR11665:
15void f() {
16  union U { int field; } u = U();
17  (void)U().field;
18}
19
20namespace PR17476 {
21struct string {
22  string(const char *__s);
23  string &operator+=(const string &__str);
24};
25
26template <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
35void f() { finalizeDefaultAtomValues<int>(); }
36}
37