diff --git a/src/runtime/print.c b/src/runtime/print.c index 974d3d72ed7..5295e338d1e 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':