Due to an oversight, libgo did not permit garbage collection to occur on any compiler generated memory allocation. It would only occur on memory allocation in the runtime library, or when allocating memory which was known to not hold pointers. This libgo patch fixes that oversight. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline.
Ian
diff -r 22c4b0a38087 libgo/runtime/go-new.c --- a/libgo/runtime/go-new.c Mon Mar 07 13:55:47 2011 -0800 +++ b/libgo/runtime/go-new.c Mon Mar 07 14:17:10 2011 -0800 @@ -11,7 +11,7 @@ void * __go_new (size_t size) { - return __go_alloc (size); + return runtime_mallocgc (size, 0, 1, 1); } void *