summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/special/class.init/class.base.init/p9-0x.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2011-06-11 17:19:42 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2011-06-11 17:19:42 +0000
commit938f40b5aa98165826536c67237fc3329d7c1d80 (patch)
tree05bea26a37c2198bd5e11e42de38021651c1ef15 /clang/test/CXX/special/class.init/class.base.init/p9-0x.cpp
parent1c2d29e3c30c852c4a541c24e39897e1de267890 (diff)
downloadbcm5719-llvm-938f40b5aa98165826536c67237fc3329d7c1d80.tar.gz
bcm5719-llvm-938f40b5aa98165826536c67237fc3329d7c1d80.zip
Implement support for C++11 in-class initialization of non-static data members.
llvm-svn: 132878
Diffstat (limited to 'clang/test/CXX/special/class.init/class.base.init/p9-0x.cpp')
-rw-r--r--clang/test/CXX/special/class.init/class.base.init/p9-0x.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/clang/test/CXX/special/class.init/class.base.init/p9-0x.cpp b/clang/test/CXX/special/class.init/class.base.init/p9-0x.cpp
new file mode 100644
index 00000000000..039b1c271a3
--- /dev/null
+++ b/clang/test/CXX/special/class.init/class.base.init/p9-0x.cpp
@@ -0,0 +1,36 @@
+// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -std=c++0x %s -O1 -emit-llvm -o - | FileCheck %s
+
+struct S {
+ int n = 10;
+ int m = 2 * n;
+
+ S() {}
+ S(int a) : n(a) {}
+ S(int a, int b) : n(a), m(b) {}
+
+ struct T {
+ T *that = this;
+ };
+};
+
+template<typename T>
+struct U {
+ T *r = &q;
+ T q = 42;
+ U *p = this;
+};
+
+S a;
+// CHECK: @a = {{.*}} { i32 10, i32 20 }
+
+S b(5);
+// CHECK: @b = {{.*}} { i32 5, i32 10 }
+
+S c(3, 9);
+// CHECK: @c = {{.*}} { i32 3, i32 9 }
+
+S::T d;
+// CHECK: @d = {{.*}} { {{.*}} @d }
+
+U<S> e;
+// CHECK: @e = {{.*}} { {{.*}} { i32 42, i32 84 }, {{.*}} @e }
OpenPOWER on IntegriCloud