This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
libgo patch committed: Tweak runtime.Callers for Go 1 compatibility
- From: Ian Lance Taylor <iant at google dot com>
- To: gcc-patches at gcc dot gnu dot org, gofrontend-dev at googlegroups dot com
- Date: Tue, 22 May 2012 14:53:19 -0700
- Subject: libgo patch committed: Tweak runtime.Callers for Go 1 compatibility
In the Go 1 release of the other Go compiler, runtime.Callers had what I
would describe as an off-by-one error. We can't change it now, because
that would break Go 1 backward compatibility. This patch changes libgo
to have the same off-by-one error. Bootstrapped and ran Go testsuite on
x86_64-unknown-linux-gnu. Committed to mainline and 4.7 branch.
Ian
diff -r d99f020243e7 libgo/runtime/go-callers.c
--- a/libgo/runtime/go-callers.c Tue May 22 09:54:14 2012 -0700
+++ b/libgo/runtime/go-callers.c Tue May 22 14:50:06 2012 -0700
@@ -72,5 +72,8 @@
int
Callers (int skip, struct __go_open_array pc)
{
- return runtime_callers (skip, (uintptr *) pc.__values, pc.__count);
+ /* In the Go 1 release runtime.Callers has an off-by-one error,
+ which we can not correct because it would break backward
+ compatibility. Adjust SKIP here to be compatible. */
+ return runtime_callers (skip - 1, (uintptr *) pc.__values, pc.__count);
}