From 701e903a76b3e1401b2a01c28504b21bf6a578fa Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 10 Sep 2008 00:08:46 +0200 Subject: [PATCH] re PR c++/37417 (error: type mismatch in binary expression, verify_gimple failed) PR c++/37417 * tree.c (array_type_nelts_top): Add size_one_node instead of integer_one_node. * g++.dg/ext/vla5.C: New test. From-SVN: r140178 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/tree.c | 2 +- gcc/testsuite/ChangeLog | 3 +++ gcc/testsuite/g++.dg/ext/vla5.C | 10 ++++++++++ 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/ext/vla5.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 9760ccf..cc70e9e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2008-09-09 Jakub Jelinek + + PR c++/37417 + * tree.c (array_type_nelts_top): Add size_one_node instead of + integer_one_node. + 2008-09-09 Jason Merrill PR c++/37439 diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 9126763..fb3e8fc 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -1461,7 +1461,7 @@ array_type_nelts_top (tree type) { return fold_build2 (PLUS_EXPR, sizetype, array_type_nelts (type), - integer_one_node); + size_one_node); } /* Return, as an INTEGER_CST node, the number of elements for TYPE diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 55464c0..6e14ee5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2008-09-09 Jakub Jelinek + PR c++/37417 + * g++.dg/ext/vla5.C: New test. + PR middle-end/37356 * g++.dg/tree-ssa/pr37356.C: New test. diff --git a/gcc/testsuite/g++.dg/ext/vla5.C b/gcc/testsuite/g++.dg/ext/vla5.C new file mode 100644 index 0000000..021d484 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/vla5.C @@ -0,0 +1,10 @@ +// PR c++/37417 +// Testcase by Martin Michlmayr +// { dg-do compile } +// { dg-options "-O" } + +void +test (int a) +{ + new (char[a]); +} -- 2.7.4