]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Add pop guard for binder
authorbadumbatish <tanghocle456@gmail.com>
Sat, 24 Aug 2024 05:21:05 +0000 (22:21 -0700)
committerArthur Cohen <arthur.cohen@embecosm.com>
Wed, 19 Mar 2025 14:32:05 +0000 (15:32 +0100)
gcc/rust/ChangeLog:

* typecheck/rust-hir-type-check.h:
Add pop guard for binder

gcc/rust/typecheck/rust-hir-type-check.h

index 3fcb32a6e3857e14c3a34dbe4749d57bae4a0f15..fa49e0689f301b1e32888a842349ad3e75890e05 100644 (file)
@@ -349,6 +349,8 @@ private:
     /** Only to be used by the guard. */
     void pop_binder () { binder_size_stack.pop (); }
 
+    bool binder_empty () { return binder_size_stack.empty (); }
+
     /**
      * Switch from resolving a function header to a function body.
      */
@@ -424,7 +426,8 @@ public:
     ~LifetimeResolverGuard ()
     {
       rust_assert (!ctx.lifetime_resolver_stack.empty ());
-      ctx.lifetime_resolver_stack.top ().pop_binder ();
+      if (!ctx.lifetime_resolver_stack.top ().binder_empty ())
+       ctx.lifetime_resolver_stack.top ().pop_binder ();
       if (kind == RESOLVER)
        {
          ctx.lifetime_resolver_stack.pop ();