This is the mail archive of the gcc-prs@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]
Other format: [Raw text]

Re: c++/8067: g++ 3.2 internal error: Segmentation fault


The following reply was made to PR c++/8067; it has been noted by GNATS.

From: =?iso-8859-1?Q?Pop_S=E9bastian?= <pop@gauvain.u-strasbg.fr>
To: Reichelt <reichelt@igpm.rwth-aachen.de>
Cc: gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org,
	y_fedor@ciam.ru, gcc-patches@gcc.gnu.org
Subject: Re: c++/8067: g++ 3.2 internal error: Segmentation fault
Date: Mon, 30 Sep 2002 21:58:33 +0200

 --J/dobhs11T7y2rNN
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 Bootstrapped on x86.  
 (configured with --enable-languages=c,c++)
 
 Ok for closing c++/8067 ?
 
 
 Sebastian
 
 
 
 2002-09-30  Sebastian Pop  <s.pop@laposte.net>
 
 	* decl.c (maybe_inject_for_scope_var): Handle the case when
 	IDENTIFIER_BINDING is NULL.
 
 
 Index: decl.c
 ===================================================================
 RCS file: /cvsroot/gcc/gcc/gcc/cp/decl.c,v
 retrieving revision 1.937
 diff -d -c -p -r1.937 decl.c
 *** decl.c	29 Sep 2002 11:53:48 -0000	1.937
 --- decl.c	30 Sep 2002 18:03:41 -0000
 *************** maybe_inject_for_scope_var (decl)
 *** 8006,8022 ****
   	 Otherwise, we need to preserve the temp slot for decl to last
   	 into the outer binding level.  */
   
 !       tree outer_binding
 ! 	= TREE_CHAIN (IDENTIFIER_BINDING (DECL_NAME (decl)));
 ! 
 !       if (outer_binding && BINDING_LEVEL (outer_binding) == outer
 ! 	  && (TREE_CODE (BINDING_VALUE (outer_binding))
 ! 	      == VAR_DECL)
 ! 	  && DECL_DEAD_FOR_LOCAL (BINDING_VALUE (outer_binding)))
   	{
 ! 	  BINDING_VALUE (outer_binding)
 ! 	    = DECL_SHADOWED_FOR_VAR (BINDING_VALUE (outer_binding));
 ! 	  current_binding_level->is_for_scope = 0;
   	}
         else if (DECL_IN_MEMORY_P (decl))
   	preserve_temp_slots (DECL_RTL (decl));
 --- 8006,8026 ----
   	 Otherwise, we need to preserve the temp slot for decl to last
   	 into the outer binding level.  */
   
 !       tree ib, outer_binding;
 !       ib = IDENTIFIER_BINDING (DECL_NAME (decl));
 !       if (ib)
   	{
 ! 	  outer_binding = TREE_CHAIN (ib);
 ! 	  
 ! 	  if (outer_binding && BINDING_LEVEL (outer_binding) == outer
 ! 	      && (TREE_CODE (BINDING_VALUE (outer_binding))
 ! 		  == VAR_DECL)
 ! 	      && DECL_DEAD_FOR_LOCAL (BINDING_VALUE (outer_binding)))
 ! 	    {
 ! 	      BINDING_VALUE (outer_binding)
 ! 		= DECL_SHADOWED_FOR_VAR (BINDING_VALUE (outer_binding));
 ! 	      current_binding_level->is_for_scope = 0;
 ! 	    }
   	}
         else if (DECL_IN_MEMORY_P (decl))
   	preserve_temp_slots (DECL_RTL (decl));
 
 --J/dobhs11T7y2rNN
 Content-Type: text/x-c++src; charset=us-ascii
 Content-Disposition: attachment; filename="r1.cc"
 
 // { dg-do compile }
 
 // Copyright (C) 2002 Free Software Foundation, Inc.
 // Contributed by Sebastian Pop 30 Sep 2002 <s.pop@laposte.net>
 
 void foo() 
 { 
   for ( __PRETTY_FUNCTION__ ; ; ) 
     ; 
 }
 
 
 
 --J/dobhs11T7y2rNN--


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