blob: d12c021a6dcc1368c765151bd4b94fe93579ccba [file] [log] [blame]
Rafael Espindolac4b1aea2013-10-04 14:33:42 +00001// RUN: %clang_cc1 %s -std=c++11 -emit-llvm-only
Douglas Katzman3459ce22015-10-08 04:24:12 +00002// RUN: %clang_cc1 -emit-obj -o %t -debug-info-kind=line-tables-only -std=c++11 %s
Rafael Espindolac4b1aea2013-10-04 14:33:42 +00003// 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}