summaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-04-15 18:52:28 -0700
committerRuss Cox <rsc@golang.org>2009-04-15 18:52:28 -0700
commit594a5e717618db8ae89229168561b2d787ad1b73 (patch)
treea58a9b361ac46447fa2e639913785dbc938804b0 /src/runtime
parentb810f54e1c4bc1650cd376c13c70bf3369c13428 (diff)
downloadgolang-594a5e717618db8ae89229168561b2d787ad1b73.tar.gz
fix traceback prints - %S was not advancing pointer enough
R=r DELTA=6 (5 added, 1 deleted, 0 changed) OCL=27500 CL=27525
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/print.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/runtime/print.c b/src/runtime/print.c
index 974d3d72e..5295e338d 100644
--- a/src/runtime/print.c
+++ b/src/runtime/print.c
@@ -58,11 +58,15 @@ printf(int8 *s, ...)
break;
case 'p': // pointer-sized
case 's':
- case 'S':
if(sizeof(uintptr) == 8 && ((uint32)(uint64)arg)&4)
arg += 4;
narg = arg + sizeof(uintptr);
break;
+ case 'S': // pointer-aligned but bigger
+ if(sizeof(uintptr) == 8 && ((uint32)(uint64)arg)&4)
+ arg += 4;
+ narg = arg + sizeof(String);
+ break;
}
switch(*p) {
case 'd':