diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete2.C')
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete2.C | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete2.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete2.C new file mode 100644 index 000000000..dc0b7429d --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete2.C @@ -0,0 +1,31 @@ +// A constructor that might or might not be constexpr still makes +// its class literal. +// { dg-options -std=c++0x } + +template <class T> +struct B +{ + constexpr B(T) { } + constexpr B() {} +}; + +struct A +{ + B<A> b; +}; + +constexpr A a {}; + +template <class T> +struct C +{ + constexpr C(T) { } + C() {} +}; + +struct D +{ + C<D> c; +}; + +constexpr D d {}; // { dg-error "not a constexpr function" } |