🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.g++.bug
Article #1749

Hi Michael...we beat jon becher to give you some feedback...

#1749
From: Michael Tiemann
Date: Fri, 17 Mar 1989 04:59
116 lines
4311 bytes
See if this helps:

yahi% diff -c2 cplus-class.c~ cplus-class.c
*** cplus-class.c~	Tue Mar 14 23:04:58 1989
--- cplus-class.c	Thu Mar 16 20:56:28 1989
***************
*** 1032,1046 ****
        if (testp)
  	{
  	  for (x = TREE_VALUE (testp), basep = x ? DECL_BASELINK (x) : 0; x;)
  	    {
! 	      if (DECL_NAME (fn_fields) == DECL_NAME (x))
  		{
  		  char buf[OVERLOAD_MAX_LEN];
  		  /* We complain about multiple destructors on sight,
! 		     so we do not repeat the warning here.  */
! 		  if (! DESTRUCTOR_NAME_P (DECL_NAME (fn_fields)))
  		    {
! 		      print_fndecl_with_types (buf, t, fn_fields, 1);
! 		      yylineerror (DECL_SOURCE_LINE (fn_fields),
  				   "ambiguous method `%s' in structure", buf);
  		    }
--- 1032,1048 ----
        if (testp)
  	{
+ 	  tree fndecl = TREE_CODE (fn_fields) == FRIEND_DECL ? TREE_TYPE (fn_fields) : fn_fields;
  	  for (x = TREE_VALUE (testp), basep = x ? DECL_BASELINK (x) : 0; x;)
  	    {
! 	      if (DECL_NAME (fndecl) == DECL_NAME (x))
  		{
  		  char buf[OVERLOAD_MAX_LEN];
  		  /* We complain about multiple destructors on sight,
! 		     so we do not repeat the warning here.  Friend-friend
! 		     ambiguities are warned about outside this loop.  */
! 		  if (! DESTRUCTOR_NAME_P (DECL_NAME (fndecl)))
  		    {
! 		      print_fndecl_with_types (buf, t, fndecl, 1);
! 		      yylineerror (DECL_SOURCE_LINE (fndecl),
  				   "ambiguous method `%s' in structure", buf);
  		    }
***************
*** 1054,1062 ****
  	      for (x = TREE_TYPE (testp); x;)
  		{
! 		  if (DECL_NAME (TREE_TYPE (fn_fields)) == DECL_NAME (TREE_TYPE (x)))
  		    {
  		      char buf[OVERLOAD_MAX_LEN];
! 		      print_fndecl_with_types (buf, t, TREE_TYPE (fn_fields), 1);
! 		      yylineerror (DECL_SOURCE_LINE (fn_fields),
  				   "friend `%s' is ambiguous in structure", buf);
  		      break;
--- 1056,1064 ----
  	      for (x = TREE_TYPE (testp); x;)
  		{
! 		  if (DECL_NAME (fndecl) == DECL_NAME (TREE_TYPE (x)))
  		    {
  		      char buf[OVERLOAD_MAX_LEN];
! 		      print_fndecl_with_types (buf, t, fndecl, 1);
! 		      yylineerror (DECL_SOURCE_LINE (fndecl),
  				   "friend `%s' is ambiguous in structure", buf);
  		      break;
***************
*** 2914,2918 ****
  		  else
  		    {
! 		      function = field;
  		    }
  		  if (protect == 0 || visibility == visibility_public)
--- 2916,2920 ----
  		  else
  		    {
! 		      function = TREE_CODE (field) == FRIEND_DECL ? TREE_TYPE (field) : field;
  		    }
  		  if (protect == 0 || visibility == visibility_public)
***************
*** 3088,3092 ****
  		{
  		  n_inner_fields_searched++;
! 		  function = field;
  		  cp->harshness
  		    = (unsigned short *)alloca ((len+1) * sizeof (short));
--- 3090,3094 ----
  		{
  		  n_inner_fields_searched++;
! 		  function = TREE_CODE (field) == FRIEND_DECL ? TREE_TYPE (field) : field;
  		  cp->harshness
  		    = (unsigned short *)alloca ((len+1) * sizeof (short));
***************
*** 3132,3136 ****
  			      /* Initialize these fields for error reporting.  */
  			      cp->u.field = field;
! 			      cp->function = field;
  			      field = TREE_CHAIN (field);
  			      continue;
--- 3134,3138 ----
  			      /* Initialize these fields for error reporting.  */
  			      cp->u.field = field;
! 			      cp->function = TREE_CODE (field) == FRIEND_DECL ? TREE_TYPE (field) : field;
  			      field = TREE_CHAIN (field);
  			      continue;
***************
*** 3283,3287 ****
  
   found:
!   function = field;
  
    if (visibility == visibility_private)
--- 3285,3289 ----
  
   found:
!   function = TREE_CODE (field) == FRIEND_DECL ? TREE_TYPE (field) : field;
  
    if (visibility == visibility_private)
yahi% 

Michael
Technical Details
Message-ID: <8903170459.AA18974@yahi>
Path: arc1-ca.pugleaf.net!utzoo!telly!attcan!uunet!tut.cis.ohio-state.edu!YAHI.STANFORD.EDU!mdt
References: <8903162114.AA02103@tacky.local>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!telly!attcan!uunet!tut.cis.ohio-state.edu!YAHI.STANFORD.EDU!mdt
From: mdt@YAHI.STANFORD.EDU (Michael Tiemann)
Newsgroups: gnu.g++.bug
Subject: Hi Michael...we beat jon becher to give you some feedback...
Message-ID: <8903170459.AA18974@yahi>
Date: 17 Mar 89 04:59:46 GMT
References: <8903162114.AA02103@tacky.local>
Sender: daemon@tut.cis.ohio-state.edu
Reply-To: tiemann@lurch.stanford.edu
Distribution: gnu
Organization: GNUs Not Usenet
Lines: 116