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