This is the mail archive of the
gcc-prs@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: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 30 Sep 2002 20:06:01 -0000
- Subject: Re: c++/8067: g++ 3.2 internal error: Segmentation fault
- Reply-to: Pop Sébastian <pop at gauvain dot u-strasbg dot fr>
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--