diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2011-06-11 17:19:42 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2011-06-11 17:19:42 +0000 |
| commit | 938f40b5aa98165826536c67237fc3329d7c1d80 (patch) | |
| tree | 05bea26a37c2198bd5e11e42de38021651c1ef15 /clang/test/CXX/special/class.init/class.base.init/p9-0x.cpp | |
| parent | 1c2d29e3c30c852c4a541c24e39897e1de267890 (diff) | |
| download | bcm5719-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.cpp | 36 |
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 } |

