[COMMITTED] gccrs: Add guards against getting data from an empty vector

Message ID 20230131132515.661993-1-arthur.cohen@embecosm.com
State Committed
Commit 245ce6f26a1688ad69a1802ec50fa865db409eec
Headers
Series [COMMITTED] gccrs: Add guards against getting data from an empty vector |

Commit Message

Arthur Cohen Jan. 31, 2023, 1:25 p.m. UTC
  From: Philip Herron <philip.herron@embecosm.com>

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()`.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/rust/typecheck/rust-tyctx.cc | 2 ++
 1 file changed, 2 insertions(+)
  

Patch

diff --git a/gcc/rust/typecheck/rust-tyctx.cc b/gcc/rust/typecheck/rust-tyctx.cc
index ad5f67cc1dd..af86b064c6c 100644
--- a/gcc/rust/typecheck/rust-tyctx.cc
+++ b/gcc/rust/typecheck/rust-tyctx.cc
@@ -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;
 }