This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Problem bootstrapping egcs-2.9.5 on UW7.0.1


> /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;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]