gccrs: Add guards against getting data from an empty vector
authorPhilip Herron <philip.herron@embecosm.com>
Fri, 26 Aug 2022 19:52:35 +0000 (20:52 +0100)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 31 Jan 2023 13:16:50 +0000 (14:16 +0100)
gcc/rust/ChangeLog:

* typecheck/rust-tyctx.cc (TypeCheckContext::pop_return_type): Add
guards around `std::vector<T>.pop_back()`.
(TypeCheckContext::peek_context): Likewise for `std::vector<T>.back()`.

gcc/rust/typecheck/rust-tyctx.cc

index ad5f67c..af86b06 100644 (file)
@@ -142,12 +142,14 @@ TypeCheckContext::push_return_type (TypeCheckContextItem item,
 void
 TypeCheckContext::pop_return_type ()
 {
+  rust_assert (!return_type_stack.empty ());
   return_type_stack.pop_back ();
 }
 
 TypeCheckContextItem &
 TypeCheckContext::peek_context ()
 {
+  rust_assert (!return_type_stack.empty ());
   return return_type_stack.back ().first;
 }