From: Richard Kenner Date: Thu, 2 Jun 1994 21:31:34 +0000 (-0400) Subject: (c_build_type_variant): Don't change TYPE_MAIN_VARIANT of new type. X-Git-Tag: misc/cutover-egcs-0~6516 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ba5ce70d08120244aab6c7cb02570ac8b88983af;p=thirdparty%2Fgcc.git (c_build_type_variant): Don't change TYPE_MAIN_VARIANT of new type. From-SVN: r7427 --- diff --git a/gcc/c-common.c b/gcc/c-common.c index 425f92e0a752..d09bf41260c8 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -1972,14 +1972,16 @@ c_build_type_variant (type, constp, volatilep) { if (TREE_CODE (type) == ARRAY_TYPE) { - tree real_main_variant = TYPE_MAIN_VARIANT (type); - push_obstacks (TYPE_OBSTACK (type), TYPE_OBSTACK (type)); type = build_array_type (c_build_type_variant (TREE_TYPE (type), constp, volatilep), TYPE_DOMAIN (type)); - TYPE_MAIN_VARIANT (type) = real_main_variant; pop_obstacks (); + + /* If the old TYPE had variants, we lose them here. However, + since the new TYPE can be in the permanent obstack and the + old one may not be, preserving this chain would cause permanent + objects to point to non-permanent ones. */ } return build_type_variant (type, constp, volatilep); }