This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Problem bootstrapping egcs-2.9.5 on UW7.0.1
- To: David Coder <dacoder at dcoder dot com>
- Subject: Re: Problem bootstrapping egcs-2.9.5 on UW7.0.1
- From: Robert Lipe <robertlipe at usa dot net>
- Date: Fri, 9 Jul 1999 17:08:50 -0500
- Cc: egcs at egcs dot cygnus dot com
- References: <Pine.BSF.4.10.9907091656320.419-100000@doc.dcoder.com>
> /home/src/egcs_obj/gcc/xgcc -B/home/src/egcs_obj/gcc/ -B/usr/local/i686-UnixWare 7.0.1-sysv5/bin/ -c -g -O2 -fno-implicit-templates -I. -I/usr/src/egcs/libio -nostdinc++ /usr/src/egcs/libio/filebuf.cc /usr/src/egcs/libio/filebuf.cc:215: Internal compiler error in `modified_type_die', at dwarf2out.c:6473
>
> I was using the 1999-06-29 sources from egcs.cygnus.com (the 13.5 meg tarball)
> with no patches, with a separate object directory. I used no options to
> configure and only the bootstrap option to make. Are there more patches since
> the 19990629 snapshot that address this error? If so, where can I find them?
Thanx for the good description.
Jason committed the following fix for this problem. Several UW7 users
have reported success with it.
RJL
From: Jason Merrill <jason@cygnus.com>
Date: 02 Jul 1999 01:32:24 -0700
In-Reply-To: Mark Mitchell's message of "Thu, 01 Jul 1999 16:41:05 -0700"
Message-ID: <u9wvwje9k7.fsf@yorick.cygnus.com>
I prefer my patch below, which I checked into the mainline a few days ago.
I think that the current behavior is much more useful than what your patch
does; if the user's code is nonconformant, we should add a pedwarn, not
just gratuitiously break it.
1999-06-28 Jason Merrill <jason@yorick.cygnus.com>
* decl.c (grokdeclarator): Update the names of all variants when
de-anonymizing.
Index: decl.c
===================================================================
RCS file: /cvs/egcs/egcs/gcc/cp/decl.c,v
retrieving revision 1.358.4.5
diff -c -p -r1.358.4.5 decl.c
*** decl.c 1999/06/28 03:12:22 1.358.4.5
--- decl.c 1999/07/02 08:28:29
*************** grokdeclarator (declarator, declspecs, d
*** 11048,11065 ****
&& TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
&& ANON_AGGRNAME_P (TYPE_IDENTIFIER (type)))
{
/* FIXME: This is bogus; we should not be doing this for
cv-qualified types. */
- /* For anonymous structs that are cv-qualified, need to use
- TYPE_MAIN_VARIANT so that name will mangle correctly. As
- type not referenced after this block, don't bother
- resetting type to original type, ie. TREE_TYPE (decl). */
- type = TYPE_MAIN_VARIANT (type);
-
/* Replace the anonymous name with the real name everywhere. */
lookup_tag_reverse (type, declarator);
! TYPE_NAME (type) = decl;
if (TYPE_LANG_SPECIFIC (type))
TYPE_WAS_ANONYMOUS (type) = 1;
--- 11048,11064 ----
&& TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
&& ANON_AGGRNAME_P (TYPE_IDENTIFIER (type)))
{
+ tree oldname = TYPE_NAME (type);
+ tree t;
+
/* FIXME: This is bogus; we should not be doing this for
cv-qualified types. */
/* Replace the anonymous name with the real name everywhere. */
lookup_tag_reverse (type, declarator);
! for (t = TYPE_MAIN_VARIANT (type); t; t = TYPE_NEXT_VARIANT (t))
! if (TYPE_NAME (t) == oldname)
! TYPE_NAME (t) = decl;
if (TYPE_LANG_SPECIFIC (type))
TYPE_WAS_ANONYMOUS (type) = 1;