This is the mail archive of the
mailing list for the GCC project.
Re: Copy TYPE_NO_FORCE_BLK in finalize_type_size
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 26 May 2015 10:58:27 +0200
- Subject: Re: Copy TYPE_NO_FORCE_BLK in finalize_type_size
- Authentication-results: sourceware.org; auth=none
- References: <20150522154423 dot GB77180 at kam dot mff dot cuni dot cz>
On Fri, May 22, 2015 at 5:44 PM, Jan Hubicka <firstname.lastname@example.org> wrote:
> PR 66181 is about ICE in verify_type that complains that type and its variant differs
> by TYPE_NO_FORCE_BLK. This flag is kind-of internal to stor-layout.c, so the divergence
> may not matter (I am not sure about it as C++ FE finalizes type variants separately
> and thus it may trip to different values) but I think it is cleaner to copy it to all
> variants like we copy other stuff set by stor layout.
> Bootstrapped/regtested x86_64-linux and the patch reportedly fixes the ARM ICE
Hmm. I think the flag should become more private to stor-layout.c and
as I read it
it matters only for the main variant (as we copy all fields computed
by it to variants).
Thus, don't stream this flag, don't compare it in LTO (nor in the type
eventually make the TYPE_NO_FORCE_BLK define private to stor-layout.c.
> PR middle-end/66181
> * stor-layout.c (finalize_type_size): Also copy TYPE_NO_FORCE_BLK.
> Index: stor-layout.c
> --- stor-layout.c (revision 222869)
> +++ stor-layout.c (working copy)
> @@ -1834,6 +1834,7 @@
> TYPE_ALIGN (variant) = valign;
> TYPE_PRECISION (variant) = precision;
> SET_TYPE_MODE (variant, mode);
> + TYPE_NO_FORCE_BLK (variant) = TYPE_NO_FORCE_BLK (type);