emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 67940394c0 2/3: Pacify gcc -std=c99 with printf %p


From: Paul Eggert
Subject: master 67940394c0 2/3: Pacify gcc -std=c99 with printf %p
Date: Tue, 19 Apr 2022 22:19:43 -0400 (EDT)

branch: master
commit 67940394c03450e767724a461c061921e2329bab
Author: Paul Eggert <eggert@cs.ucla.edu>
Commit: Paul Eggert <eggert@cs.ucla.edu>

    Pacify gcc -std=c99 with printf %p
    
    * 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 | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/print.c b/src/print.c
index baf515047b..54d8bdfa3d 100644
--- a/src/print.c
+++ b/src/print.c
@@ -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);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]