[Bug middle-end/24053] [4.1 Regression] Ada bootstrap ICE in build_int_cst_wide, at tree.c:795
ebotcazou at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Sep 29 17:24:00 GMT 2005
------- Additional Comments From ebotcazou at gcc dot gnu dot org 2005-09-29 17:24 -------
> The problem here is that we have to create some types before setting
> size_type, and in creating those types we need to set their size to some
> integral constant, and that integral constant has to have a type. That uses
> the stub sizetype type, which we overwrite further down set_sizetype.
>
> /* Replace our original stub sizetype. */
> memcpy (sizetype, t, tree_size (sizetype));
> TYPE_MAIN_VARIANT (sizetype) = sizetype;
OK, I totally missed that the types 't' are not supposed to escape from
set_sizetype, right?
> My guess is that we've already created some type variants of the stub type at
> that point, which is not what I expected. There should really be an
> gcc_assert (!TYPE_NEXT_VARIANT (sizetype) && !TYPE_NEXT_VARIANT (t));
> just before the memcpy
The bug appears to be that the second type 't' does escape from set_sizetype
because it is the main variant of bitsizetype, as Richard Kenner has found.
Thanks for your feedback.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24053
More information about the Gcc-bugs
mailing list