mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-24 21:01:27 +08:00
re PR middle-end/18965 (ICE in gimplify_init_ctor_eval)
2004-12-14 Andrew Pinski <pinskia@physics.uc.edu> PR c++/18965 * init.c (build_zero_init): If the max_index is 0, there is no need to create a RANGE_EXPR. 2004-12-14 Andrew Pinski <pinskia@physics.uc.edu> PR c++/18965 * g++.dg/init/array17.C: New test. From-SVN: r92158
This commit is contained in:
parent
ff1c708e4a
commit
b01f0d133b
@ -1,3 +1,9 @@
|
||||
2004-12-14 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
PR c++/18965
|
||||
* init.c (build_zero_init): If the max_index is 0, there is no
|
||||
need to create a RANGE_EXPR.
|
||||
|
||||
2004-12-14 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR c++/18793
|
||||
|
@ -231,8 +231,13 @@ build_zero_init (tree type, tree nelts, bool static_storage_p)
|
||||
tree elt_init = build_zero_init (TREE_TYPE (type),
|
||||
/*nelts=*/NULL_TREE,
|
||||
static_storage_p);
|
||||
tree range = build2 (RANGE_EXPR,
|
||||
sizetype, size_zero_node, max_index);
|
||||
tree range;
|
||||
|
||||
/* If this is a one element array, we just use a regular init. */
|
||||
if (tree_int_cst_equal (size_zero_node, max_index))
|
||||
range = size_zero_node;
|
||||
else
|
||||
range = build2 (RANGE_EXPR, sizetype, size_zero_node, max_index);
|
||||
|
||||
inits = tree_cons (range, elt_init, inits);
|
||||
}
|
||||
|
@ -1,3 +1,8 @@
|
||||
2004-12-14 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
PR c++/18965
|
||||
* g++.dg/init/array17.C: New test.
|
||||
|
||||
2004-12-14 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR c++/18793
|
||||
|
5
gcc/testsuite/g++.dg/init/array17.C
Normal file
5
gcc/testsuite/g++.dg/init/array17.C
Normal file
@ -0,0 +1,5 @@
|
||||
class StringMap {
|
||||
const char empty_str[1];
|
||||
public:
|
||||
StringMap() : empty_str() {}
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user