This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: ICE in `expand_expr', at expr.c:6524 (G++ 2.96 19991012,i686-pc-linux-gnu)
- To: harinath at cs dot umn dot edu
- Subject: Re: ICE in `expand_expr', at expr.c:6524 (G++ 2.96 19991012,i686-pc-linux-gnu)
- From: Mark Mitchell <mark at codesourcery dot com>
- Date: Wed, 13 Oct 1999 09:20:38 -0700
- Cc: gcc-patches at gcc dot gnu dot org
- Organization: CodeSourcery, LLC
- References: <d9wvssgpho.fsf@han.cs.umn.edu>
Fixed thusly.
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
1999-10-13 Mark Mitchell <mark@codesourcery.com>
* decl.c (make_rtl_for_local_static): Don't create register RTL
for addressable constants.
Index: testsuite/g++.old-deja/g++.other/static10.C
===================================================================
RCS file: /cvs/gcc/egcs/gcc/testsuite/g++.old-deja/g++.other/static10.C,v
retrieving revision 1.1
diff -c -p -r1.1 static10.C
*** static10.C 1999/10/09 21:06:03 1.1
--- static10.C 1999/10/13 16:10:28
***************
*** 1,5 ****
--- 1,6 ----
// Build don't link:
// Origin: Ulrich Drepper <drepper@cygnus.com>
+ // Special g++ Options: -w
struct st
{
Index: testsuite/g++.old-deja/g++.other/static11.C
===================================================================
RCS file: static11.C
diff -N static11.C
*** /dev/null Tue May 5 13:32:27 1998
--- static11.C Wed Oct 13 09:10:28 1999
***************
*** 0 ****
--- 1,15 ----
+ // Build don't link:
+ // Origin: Raja R Harinath <harinath@cs.umn.edu>
+
+ enum ReservedName {
+ rIGNORE,
+ rINCLUDE
+ };
+
+ void maybeStatusKeyword()
+ {
+ static const ReservedName statusKeywords[] = { rINCLUDE, rIGNORE };
+ for (int i = 0; i < 2; i++) {
+ ReservedName r = statusKeywords[i];
+ }
+ }
Index: cp/decl.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/decl.c,v
retrieving revision 1.481
diff -c -p -r1.481 decl.c
*** decl.c 1999/10/09 21:06:03 1.481
--- decl.c 1999/10/13 16:10:36
*************** make_rtl_for_local_static (decl)
*** 7433,7438 ****
--- 7433,7439 ----
&& ! TREE_PUBLIC (decl)
&& ! DECL_EXTERNAL (decl)
&& ! TYPE_NEEDS_DESTRUCTOR (type)
+ && ! TREE_ADDRESSABLE (decl)
&& DECL_MODE (decl) != BLKmode)
{
/* As an optimization, we try to put register-sized static