From df375daef43ce363920c4d3f147c911574341f11 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 12 Aug 2014 08:47:14 +0100 Subject: [PATCH] avoid NULL argument to memcpy() gcc 4.9 takes advantage of the specification of undefined behavior if you pass a NULL to memcpy(), even if the last argument is 0 --- racket/src/racket/sgc/sgc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/racket/src/racket/sgc/sgc.c b/racket/src/racket/sgc/sgc.c index 9f4e06e3da..458f2558bb 100644 --- a/racket/src/racket/sgc/sgc.c +++ b/racket/src/racket/sgc/sgc.c @@ -1653,11 +1653,11 @@ void GC_add_roots(void *start, void *end) mem_real_use += (sizeof(uintptr_t) * roots_size); - memcpy((void *)naya, (void *)roots, - sizeof(uintptr_t) * roots_count); - - if (roots) + if (roots) { + memcpy((void *)naya, (void *)roots, + sizeof(uintptr_t) * roots_count); free_managed(roots); + } roots = naya; }