blob: a4f6ec6a42e8d56aa1810b242eedb9fff8f16c7f [file] [log] [blame]
Rafael Espindolac4b1aea2013-10-04 14:33:42 +00001// RUN: %clang_cc1 %s -std=c++11 -emit-llvm-only
Nico Webereac50032015-01-07 18:23:08 +00002// RUN: %clang_cc1 -emit-obj -o %t -gline-tables-only -O2 -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}
Nico Webereac50032015-01-07 18:23:08 +000037
38namespace PR22096 {
39class _String_val {
40 union _Bxty { int i; } _Bx;
41};
42struct string : public _String_val {
43 string(const char *_Ptr) : _String_val() {}
44};
45
46
47int ConvertIPv4NumberToIPv6Number(int);
48struct IPEndPoint {
49 IPEndPoint();
50 IPEndPoint(const int &address, int port);
51 const int &address() const {}
52};
53
54struct SourceAddressTokenTest {
55 SourceAddressTokenTest()
56 : ip4_dual_(ConvertIPv4NumberToIPv6Number(ip4_.address()), 1) {}
57 const string kPrimary = "<primary>";
58 IPEndPoint ip4_;
59 IPEndPoint ip4_dual_;
60} s;
61}