Bug 29857 - Don't pop comparison operands that haven't been pushed
authorDodji Seketeli <dodji@seketeli.org>
Mon, 19 Dec 2022 13:52:05 +0000 (14:52 +0100)
committerDodji Seketeli <dodji@redhat.com>
Mon, 19 Dec 2022 16:52:10 +0000 (17:52 +0100)
While looking at bug
https://sourceware.org/bugzilla/show_bug.cgi?id=29857, I noticed a
crash that is happening due to the fact that the equal overload for
classes tries pop comparison operands that haven't been pushed to the
stack of comparison operands.  Oops.  Fixed thus.

* src/abg-ir.cc (equals): In the overload for class_or_union,
don't try to pop, operands that haven't been pushed.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
src/abg-ir.cc

index 2719954ee3bd19bd9aa8ba12a38a04334cb24d7f..4b375c1ad09b79e4c82a27f616ac1b69baf16d3b 100644 (file)
@@ -22042,7 +22042,7 @@ equals(const class_or_union& l, const class_or_union& r, change_kind* k)
       if (!val)
        if (k)
          *k |= LOCAL_TYPE_CHANGE_KIND;
-      RETURN(val);
+      ABG_RETURN(val);
     }
 
   // No need to go further if the classes have different names or