aboutsummaryrefslogtreecommitdiff
path: root/gcc/ggc-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ggc-common.c')
-rw-r--r--gcc/ggc-common.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c
index 6ec7db7..ecd6624 100644
--- a/gcc/ggc-common.c
+++ b/gcc/ggc-common.c
@@ -147,11 +147,6 @@ ggc_realloc (void *x, size_t size)
return ggc_alloc (size);
old_size = ggc_get_size (x);
-
-#ifndef ENABLE_GC_ALWAYS_COLLECT
- /* In completely-anal-checking mode, never re-use memory. This maximizes
- the chance of catching the user retaining a pointer to the old block.
- Otherwise, we get to consume the power-of-two overhead we had before. */
if (size <= old_size)
{
/* Mark the unwanted memory as unaccessible. We also need to make
@@ -169,7 +164,6 @@ ggc_realloc (void *x, size_t size)
VALGRIND_DISCARD (VALGRIND_MAKE_READABLE (x, size));
return x;
}
-#endif
r = ggc_alloc (size);
@@ -182,7 +176,7 @@ ggc_realloc (void *x, size_t size)
memcpy (r, x, old_size);
/* The old object is not supposed to be used anymore. */
- ggc_free (x);
+ VALGRIND_DISCARD (VALGRIND_MAKE_NOACCESS (x, old_size));
return r;
}