This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: c++/8067: g++ 3.2 internal error: Segmentation fault
- From: Pop Sébastian <pop at gauvain dot u-strasbg dot fr>
- To: Jason Merrill <jason at redhat dot com>
- Cc: Reichelt <reichelt at igpm dot rwth-aachen dot de>, gcc-gnats at gcc dot gnu dot org,y_fedor at ciam dot ru, gcc-patches at gcc dot gnu dot org
- Date: Sun, 6 Oct 2002 20:59:50 +0200
- Subject: Re: c++/8067: g++ 3.2 internal error: Segmentation fault
- References: <200209301735.TAA97382@numa6.igpm.rwth-aachen.de> <20020930172844.GA5590@gauvain.u-strasbg.fr> <20020930195833.GD5590@gauvain.u-strasbg.fr> <wvln0pycx3b.fsf@prospero.cambridge.redhat.com>
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 ())