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:
Andrew Pinski 2004-12-14 20:13:16 +00:00 committed by Andrew Pinski
parent ff1c708e4a
commit b01f0d133b
4 changed files with 23 additions and 2 deletions

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -0,0 +1,5 @@
class StringMap {
const char empty_str[1];
public:
StringMap() : empty_str() {}
};