]> git.eshelyaron.com Git - emacs.git/commitdiff
Pacify gcc -std=c99 with printf %p
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 20 Apr 2022 02:02:05 +0000 (19:02 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 20 Apr 2022 02:19:35 +0000 (19:19 -0700)
* src/print.c (print_vectorlike): Assign pointer-to-function
to void * before printing it with %p, as the C standard
doesn’t bless printing function pointers with %p.

src/print.c

index baf515047b4a0713612e0a3f9cd620df3705af09..54d8bdfa3d8d98803b81ab83bca4c846150d1a39 100644 (file)
@@ -1701,10 +1701,10 @@ print_vectorlike (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag,
 
     case PVEC_USER_PTR:
       {
+       void *finalizer = XUSER_PTR (obj)->finalizer;
        print_c_string ("#<user-ptr ", printcharfun);
        int i = sprintf (buf, "ptr=%p finalizer=%p",
-                        XUSER_PTR (obj)->p,
-                        XUSER_PTR (obj)->finalizer);
+                        XUSER_PTR (obj)->p, finalizer);
        strout (buf, i, i, printcharfun);
        printchar ('>', printcharfun);
       }
@@ -1875,7 +1875,8 @@ print_vectorlike (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag,
        print_string (XTHREAD (obj)->name, printcharfun);
       else
        {
-         int len = sprintf (buf, "%p", XTHREAD (obj));
+         void *p = XTHREAD (obj);
+         int len = sprintf (buf, "%p", p);
          strout (buf, len, len, printcharfun);
        }
       printchar ('>', printcharfun);
@@ -1887,7 +1888,8 @@ print_vectorlike (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag,
        print_string (XMUTEX (obj)->name, printcharfun);
       else
        {
-         int len = sprintf (buf, "%p", XMUTEX (obj));
+         void *p = XMUTEX (obj);
+         int len = sprintf (buf, "%p", p);
          strout (buf, len, len, printcharfun);
        }
       printchar ('>', printcharfun);
@@ -1899,7 +1901,8 @@ print_vectorlike (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag,
        print_string (XCONDVAR (obj)->name, printcharfun);
       else
        {
-         int len = sprintf (buf, "%p", XCONDVAR (obj));
+         void *p = XCONDVAR (obj);
+         int len = sprintf (buf, "%p", p);
          strout (buf, len, len, printcharfun);
        }
       printchar ('>', printcharfun);