diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp0x/rv-cast3.C')
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/rv-cast3.C | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C b/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C new file mode 100644 index 000000000..e7d5b6d34 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C @@ -0,0 +1,18 @@ +// PR c++/51406 +// { dg-do run } +// { dg-options "-std=c++0x" } + +extern "C" int printf(const char *,...); +extern "C" void abort(); + +struct A { int a; A() : a(1) {} }; +struct B { int b; B() : b(2) {} }; +struct X : A, B {}; + +int main() { + X x; + int a=static_cast<A&&>(x).a; + int b=static_cast<B&&>(x).b; + // printf ("%d %d\n", a, b); + if (a!=1 || b!=2) abort(); +} |