diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg3.C')
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg3.C | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg3.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg3.C new file mode 100644 index 000000000..581be6d15 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg3.C @@ -0,0 +1,23 @@ +// PR c++/49988 +// { dg-options -std=c++0x } +// { dg-do run } + +template<int ... I> struct X { }; + +struct A { + char data[3]; + template<int ... I> + constexpr + A(const char (&s)[3], X<I...> x) : data{ s[I]...} { } +}; +struct B { + A a; + B(const char (&s)[3]) : a{s,X<0,1,2>{}} { } +}; + +int main() +{ + B b{"12"}; + if (b.a.data[0] != '1') + return 1; +} |