Don't use plain %x to print pointer values. I had changed it from %p
authorDan Gohman <gohman@apple.com>
Fri, 5 Dec 2008 23:39:24 +0000 (23:39 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 5 Dec 2008 23:39:24 +0000 (23:39 +0000)
since %p isn't formatted consistently, but obviously plain %x is wrong.
PRIxPTR with a cast to uintptr_t would work here, but that requires
inconvenient build-system changes. %lu works on all current and
foreseable future hosts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60616 91177308-0d34-0410-b5e6-96231b3b80d8

lib/System/Unix/Signals.inc

index abb6a3363772ea45a88721cfba7fde750d13b957..9c1050cf8a0fa07b84e03e12754a9fa7d1f922e0 100644 (file)
@@ -97,7 +97,8 @@ static void PrintStackTrace() {
     if (name == NULL) fprintf(stderr, " %-*s", width, dlinfo.dli_fname);
     else              fprintf(stderr, " %-*s", width, name+1);
 
-    fprintf(stderr, " %#0*x", (int)(sizeof(void*) * 2) + 2, StackTrace[i]);
+    fprintf(stderr, " %#0*lx",
+            (int)(sizeof(void*) * 2) + 2, (unsigned long)StackTrace[i]);
 
     if (dlinfo.dli_sname != NULL) {
       int res;