diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2009-07-25 21:12:28 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2009-07-25 21:12:28 +0000 |
commit | dedf1e4b1ab988a12e734b27bd6b60ba11ce054a (patch) | |
tree | 83e3b8396b9cb5847ade5ea37a716c5b8d1996e7 /clang/test/CodeGenCXX/constructor-init.cpp | |
parent | 60f3b73e1119d985732c70df930deac9c45b205c (diff) | |
download | bcm5719-llvm-dedf1e4b1ab988a12e734b27bd6b60ba11ce054a.tar.gz bcm5719-llvm-dedf1e4b1ab988a12e734b27bd6b60ba11ce054a.zip |
ir-gen for non-virtual base class initialization
in constructors.
llvm-svn: 77087
Diffstat (limited to 'clang/test/CodeGenCXX/constructor-init.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/constructor-init.cpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/constructor-init.cpp b/clang/test/CodeGenCXX/constructor-init.cpp new file mode 100644 index 00000000000..d2c33aef547 --- /dev/null +++ b/clang/test/CodeGenCXX/constructor-init.cpp @@ -0,0 +1,49 @@ +// RUN: clang-cc %s -emit-llvm -o %t + +extern "C" int printf(...); + +struct M { + M() { printf("M()\n"); } + M(int i) { iM = i; printf("M(%d)\n", i); } + int iM; + void MPR() {printf("iM = %d\n", iM); }; +}; + +struct P { + P() { printf("P()\n"); } + P(int i) { iP = i; printf("P(%d)\n", i); } + int iP; + void PPR() {printf("iP = %d\n", iP); }; +}; + +struct Q { + Q() { printf("Q()\n"); } + Q(int i) { iQ = i; printf("Q(%d)\n", i); } + int iQ; + void QPR() {printf("iQ = %d\n", iQ); }; +}; + +struct N : M , P, Q { + N() : f1(1.314), P(2000), ld(00.1234+f1), M(1000), Q(3000), + d1(3.4567), i1(1234), m1(100) { printf("N()\n"); } + M m1; + M m2; + float f1; + int i1; + float d1; + void PR() { printf("f1 = %f d1 = %f i1 = %d ld = %f \n", f1,d1,i1, ld); + MPR(); + PPR(); + QPR(); + } + float ld; + float ff; +}; + +int main() { + M m1; + + N n1; + n1.PR(); +} + |