1 // RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -std=c++11 %s -O1 -emit-llvm -o - | FileCheck %s
2 
3 struct S {
4   int n = 10;
5   int m = 2 * n;
6 
SS7   S() {}
SS8   S(int a) : n(a) {}
SS9   S(int a, int b) : n(a), m(b) {}
10 
11   struct T {
12     T *that = this;
13   };
14 };
15 
16 template<typename T>
17 struct U {
18   T *r = &q;
19   T q = 42;
20   U *p = this;
21 };
22 
23 S a;
24 // CHECK: @a = {{.*}} { i32 10, i32 20 }
25 
26 S b(5);
27 // CHECK: @b = {{.*}} { i32 5, i32 10 }
28 
29 S c(3, 9);
30 // CHECK: @c = {{.*}} { i32 3, i32 9 }
31 
32 S::T d;
33 // CHECK: @d = {{.*}} { {{.*}} @d }
34 
35 U<S> e;
36 // CHECK: @e = {{.*}} { {{.*}} { i32 42, i32 84 }, {{.*}} @e }
37