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 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 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