GC (?) problems in cp/call.c - ICE with --enable-checking

Mark Mitchell mark@codesourcery.com
Sun Oct 31 23:03:00 GMT 1999


This problem was actually the result of overzealous poisoning; the bug
was not in the collector, but in the collector verification code.
Since this bug has exactly the same symptoms as the bug Jim reported
in i960 port, I'm not going to bother building the i960
cross-compiler; Jim, let me know if that problem persists.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>

	* ggc-page.c (poison_pages): Don't be overzealous.

Index: ggc-page.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/ggc-page.c,v
retrieving revision 1.11
diff -c -p -r1.11 ggc-page.c
*** ggc-page.c	1999/10/20 12:53:23	1.11
--- ggc-page.c	1999/10/27 06:09:13
*************** poison_pages ()
*** 1021,1026 ****
--- 1021,1034 ----
        for (p = G.pages[order]; p != NULL; p = p->next)
  	{
  	  size_t i;
+ 
+ 	  if (p->context_depth != G.context_depth)
+ 	    /* Since we don't do any collection for pages in pushed
+ 	       contexts, there's no need to do any poisoning.  And
+ 	       besides, the IN_USE_P array isn't valid until we pop
+ 	       contexts.  */
+ 	    continue;
+ 
  	  for (i = 0; i < num_objects; i++)
  	    {
  	      size_t word, bit;



More information about the Gcc-bugs mailing list