From: Russ Cox Date: Thu, 16 Apr 2009 01:52:28 +0000 (-0700) Subject: fix traceback prints - %S was not advancing pointer enough X-Git-Tag: weekly.2009-11-06~1827 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=bafd1787fe683f33a893e558e57b1d005af2bbca;p=gostls13.git fix traceback prints - %S was not advancing pointer enough R=r DELTA=6 (5 added, 1 deleted, 0 changed) OCL=27500 CL=27525 --- diff --git a/src/runtime/print.c b/src/runtime/print.c index 974d3d72ed..5295e338d1 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':