This is the mail archive of the gcc-patches@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


Hi Jason,

On Tue, Oct 01, 2002 at 10:44:24AM +0100, Jason Merrill wrote:
> Thanks, but your patch is just a workaround; the problem is that we think
> we're dealing with a variable declared in the for-init-stmt, but we really
> aren't.  
Ok, so we have to teach G++ that __PRETTY_FUNCTION__ is not a local declaration 
in the FOR_INIT.

> Either we need to add more tests to the enclosing if, or we need
> to change current_binding_level when pushing __PRETTY_FUNCTION__.
> 
What about the following patch for solving the PR following the first suggestion?



Index: decl.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/cp/decl.c,v
retrieving revision 1.942
diff -d -u -p -r1.942 decl.c
--- decl.c	2 Oct 2002 18:46:40 -0000	1.942
+++ decl.c	6 Oct 2002 18:48:16 -0000
@@ -8305,7 +8305,8 @@ cp_finish_decl (decl, init, asmspec_tree
 	  if (init)
 	    DECL_INITIAL (decl) = init;
 	}
-      else if (TREE_CODE (CP_DECL_CONTEXT (decl)) == FUNCTION_DECL)
+      else if (TREE_CODE (CP_DECL_CONTEXT (decl)) == FUNCTION_DECL
+	       && !DECL_PRETTY_FUNCTION_P (decl))
 	{
 	  /* This is a local declaration.  */
 	  if (doing_semantic_analysis_p ())


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