ICE in `expand_expr', at expr.c:6524 (G++ 2.96 19991012,i686-pc-linux-gnu)

Mark Mitchell mark@codesourcery.com
Wed Oct 13 09:15:00 GMT 1999


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


More information about the Gcc-patches mailing list