aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorbadumbatish <tanghocle456@gmail.com>2024-08-23 22:21:05 -0700
committerArthur Cohen <arthur.cohen@embecosm.com>2025-03-19 15:32:05 +0100
commitb78b238e7aebd6d551f4b3a0684f341db0075610 (patch)
tree5f66c2cde9f1456e476f99a5998a46ab9e3b0360 /gcc
parente2126a193567e97e57c854ef59952c6df3063bbf (diff)
downloadgcc-b78b238e7aebd6d551f4b3a0684f341db0075610.zip
gcc-b78b238e7aebd6d551f4b3a0684f341db0075610.tar.gz
gcc-b78b238e7aebd6d551f4b3a0684f341db0075610.tar.bz2
gccrs: Add pop guard for binder
gcc/rust/ChangeLog: * typecheck/rust-hir-type-check.h: Add pop guard for binder
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/typecheck/rust-hir-type-check.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/rust/typecheck/rust-hir-type-check.h b/gcc/rust/typecheck/rust-hir-type-check.h
index 3fcb32a..fa49e06 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 ();