diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2011-12-20 23:51:09 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2011-12-20 23:51:09 +0000 |
commit | 7ac37b9675f5111039b2b21d01ecde8e534b4d73 (patch) | |
tree | c2a6dc236081392ffd1d3297d7d44fc853861479 /gcc | |
parent | a0c8d0c1e36976bf178b9eea29188e11a4e43b89 (diff) | |
download | gcc-7ac37b9675f5111039b2b21d01ecde8e534b4d73.zip gcc-7ac37b9675f5111039b2b21d01ecde8e534b4d73.tar.gz gcc-7ac37b9675f5111039b2b21d01ecde8e534b4d73.tar.bz2 |
re PR c++/51621 ([c++0x] [4.6/4.7 Regression] ICE with invalid constexpr and array class member)
/cp
2011-12-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51621
* tree.c (diagnose_non_constexpr_vec_init): For value initialization
pass void_type_node, not void_zero_node, to build_vec_init_elt.
/testsuite
2011-12-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51621
* g++.dg/cpp0x/constexpr-ice5.C: New.
From-SVN: r182556
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/tree.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/constexpr-ice5.C | 13 |
4 files changed, 25 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 0e570f8..9ccb801 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2011-12-20 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/51621 + * tree.c (diagnose_non_constexpr_vec_init): For value initialization + pass void_type_node, not void_zero_node, to build_vec_init_elt. + 2011-12-20 Dodji Seketeli <dodji@redhat.com> PR debug/49951 diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 7899397..aabe863 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -564,7 +564,7 @@ diagnose_non_constexpr_vec_init (tree expr) tree type = TREE_TYPE (VEC_INIT_EXPR_SLOT (expr)); tree init, elt_init; if (VEC_INIT_EXPR_VALUE_INIT (expr)) - init = void_zero_node; + init = void_type_node; else init = VEC_INIT_EXPR_INIT (expr); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1d329e2..629c263 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-12-20 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/51621 + * g++.dg/cpp0x/constexpr-ice5.C: New. + 2011-12-20 Joseph Myers <joseph@codesourcery.com> * gcc.dg/c11-version-1.c, gcc.dg/c11-version-2.c, diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-ice5.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-ice5.C new file mode 100644 index 0000000..b88ec66 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-ice5.C @@ -0,0 +1,13 @@ +// PR c++/51621 +// { dg-options -std=c++0x } + +struct A +{ + A() {} +}; + +struct B +{ + A a[1]; + constexpr B() : a() {} // { dg-error "non-constant|non-constexpr" } +}; |