Clang Project

clang_source_code/test/CodeGenCXX/crash.cpp
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/*
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}
38