diff options
author | Jason Merrill <jason@redhat.com> | 2009-12-16 12:36:05 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2009-12-16 12:36:05 -0500 |
commit | 483a1dce8a60446bef569c47f371fe7e8b50010a (patch) | |
tree | 3ecebb15b86b9d8d65002544ffb284a045075f64 /gcc | |
parent | 6568e44adfdf02156d399fa50565bd59cf2df5a2 (diff) | |
download | gcc-483a1dce8a60446bef569c47f371fe7e8b50010a.zip gcc-483a1dce8a60446bef569c47f371fe7e8b50010a.tar.gz gcc-483a1dce8a60446bef569c47f371fe7e8b50010a.tar.bz2 |
re PR c++/42387 (ICE with new expression in class template)
PR c++/42387
* decl.c (compute_array_index_type): Mark a VLA as dependent.
From-SVN: r155292
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/ext/vla8.C | 15 |
4 files changed, 27 insertions, 5 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index f00ef84..8d2663b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2009-12-16 Jason Merrill <jason@redhat.com> + + PR c++/42387 + * decl.c (compute_array_index_type): Mark a VLA as dependent. + 2009-12-15 Jason Merrill <jason@redhat.com> PR c++/42358 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 5b37ef7..1c3f2ef 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -7270,11 +7270,8 @@ compute_array_index_type (tree name, tree size) structural equality checks. */ itype = build_index_type (build_min (MINUS_EXPR, sizetype, size, integer_one_node)); - if (!TREE_SIDE_EFFECTS (size)) - { - TYPE_DEPENDENT_P (itype) = 1; - TYPE_DEPENDENT_P_VALID (itype) = 1; - } + TYPE_DEPENDENT_P (itype) = 1; + TYPE_DEPENDENT_P_VALID (itype) = 1; SET_TYPE_STRUCTURAL_EQUALITY (itype); return itype; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d0c0985..d2beaf3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-12-15 Jason Merrill <jason@redhat.com> + + PR c++/42387 + * g++.dg/ext/vla8.C: New. + 2009-12-16 Jakub Jelinek <jakub@redhat.com> * gcc.c-torture/compile/20091215-1.c: New test. diff --git a/gcc/testsuite/g++.dg/ext/vla8.C b/gcc/testsuite/g++.dg/ext/vla8.C new file mode 100644 index 0000000..7b7428d --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/vla8.C @@ -0,0 +1,15 @@ +// PR c++/42387 +// { dg-options "" } + +template<class PF> +struct AvlTreeIter +{ + int Num(); + + AvlTreeIter() + { + new (void* [Num()]); + } +}; + +AvlTreeIter<int> a; |