]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid compiler warning in process_mark_stack
authorPip Cet <pipcet@protonmail.com>
Thu, 22 Aug 2024 05:49:33 +0000 (05:49 +0000)
committerEshel Yaron <me@eshelyaron.com>
Mon, 3 Feb 2025 10:36:09 +0000 (11:36 +0100)
* src/alloc.c (process_mark_stack): Only declare and assign to 'po' if
it's needed.
Problem reported by: Stefan Kangas <stefankangas@gmail.com>.

(cherry picked from commit c951fd415cd243eeda3caf2e536967a762bd0ffe)

src/alloc.c

index c39a0b9ff10dc47e877255656b6ec682de80cbad..17970803b8344bdf0fc7f2c7a5e23610adb39769 100644 (file)
@@ -6632,8 +6632,6 @@ process_mark_stack (ptrdiff_t base_sp)
     {
       Lisp_Object obj = mark_stack_pop ();
     mark_obj: ;
-      void *po = XPNTR (obj);
-
 #if GC_REMEMBER_LAST_MARKED
       last_marked[last_marked_index++] = obj;
       last_marked_index &= LAST_MARKED_SIZE - 1;
@@ -6643,6 +6641,7 @@ process_mark_stack (ptrdiff_t base_sp)
         we encounter an object we know is bogus.  This increases GC time
         by ~80%.  */
 #if GC_CHECK_MARKED_OBJECTS
+      void *po = XPNTR (obj);
 
       /* Check that the object pointed to by PO is known to be a Lisp
         structure allocated from the heap.  */
@@ -6879,7 +6878,10 @@ process_mark_stack (ptrdiff_t base_sp)
            set_string_marked (XSTRING (ptr->u.s.name));
            mark_interval_tree (string_intervals (ptr->u.s.name));
            /* Inner loop to mark next symbol in this bucket, if any.  */
-           po = ptr = ptr->u.s.next;
+           ptr = ptr->u.s.next;
+#if GC_CHECK_MARKED_OBJECTS
+           po = ptr;
+#endif
            if (ptr)
              goto nextsym;
          }