blob: 63bca484b5ddf524e2c53da1895e70e9ef5d8f52 [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
Alexey Bataev80e1b5e2018-08-31 13:56:14 +00003// RUN: %clang_cc1 -emit-obj -o %t -debug-info-kind=line-directives-only -std=c++11 %s
Rafael Espindolac4b1aea2013-10-04 14:33:42 +00004// CHECK that we don't crash.
5
6// PR11676's example is ill-formed:
7/*
8union _XEvent {
9};
10void ProcessEvent() {
11 _XEvent pluginEvent = _XEvent();
12}
13*/
14
15// Example from PR11665:
16void f() {
17 union U { int field; } u = U();
18 (void)U().field;
19}
20
21namespace PR17476 {
22struct string {
23 string(const char *__s);
24 string &operator+=(const string &__str);
25};
26
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
36void f() { finalizeDefaultAtomValues<int>(); }
37}