[COMMITTED 037/144] gccrs: Add pop guard for binder

arthur.cohen@embecosm.com arthur.cohen@embecosm.com
Wed Mar 19 14:43:18 GMT 2025


From: badumbatish <tanghocle456@gmail.com>

gcc/rust/ChangeLog:

	* typecheck/rust-hir-type-check.h:
	Add pop guard for binder
---
 gcc/rust/typecheck/rust-hir-type-check.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gcc/rust/typecheck/rust-hir-type-check.h b/gcc/rust/typecheck/rust-hir-type-check.h
index 3fcb32a6e38..fa49e0689f3 100644
--- a/gcc/rust/typecheck/rust-hir-type-check.h
+++ b/gcc/rust/typecheck/rust-hir-type-check.h
@@ -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 ();
-- 
2.45.2



More information about the Gcc-rust mailing list