aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>1999-10-27 06:12:31 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>1999-10-27 06:12:31 +0000
commitc831fdea4be7d36270bfd160bd818250e5f4f7d6 (patch)
tree759d2fa33ebcc159d29c23cab43d30b53789711f /gcc
parent95815af9d258082b7548e23fc2595ff637a48e1a (diff)
downloadgcc-c831fdea4be7d36270bfd160bd818250e5f4f7d6.zip
gcc-c831fdea4be7d36270bfd160bd818250e5f4f7d6.tar.gz
gcc-c831fdea4be7d36270bfd160bd818250e5f4f7d6.tar.bz2
* ggc-page.c (poison_pages): Don't be overzealous.
From-SVN: r30209
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/ggc-page.c8
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b67a024..cf97fbf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Tue Oct 26 23:15:03 1999 Mark Mitchell <mark@codesourcery.com>
+
+ * ggc-page.c (poison_pages): Don't be overzealous.
+
Tue Oct 26 23:29:18 1999 Jeffrey A Law (law@cygnus.com)
* c-typeck.c (build_function_call): Check that the built-in
diff --git a/gcc/ggc-page.c b/gcc/ggc-page.c
index 54f762f..f034a4f 100644
--- a/gcc/ggc-page.c
+++ b/gcc/ggc-page.c
@@ -1021,6 +1021,14 @@ poison_pages ()
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;