aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-09-26 14:49:10 +0200
committerP-E-P <32375388+P-E-P@users.noreply.github.com>2023-09-27 08:17:45 +0000
commit289722166ed9dabc35cf4130bdd34f803babea57 (patch)
tree76357dbbf3da40d4e814c0dc115343fd96b010cc /gcc/rust
parentd0742b3695d171fbafee44edff72409d2838b0e8 (diff)
downloadgcc-289722166ed9dabc35cf4130bdd34f803babea57.zip
gcc-289722166ed9dabc35cf4130bdd34f803babea57.tar.gz
gcc-289722166ed9dabc35cf4130bdd34f803babea57.tar.bz2
Fix ICE when emitting an error during cfg strip
When an error was emitted during the cfg strip pass by the crate loader, it was ignored and the error state propagated until another pass (name resolver). gcc/rust/ChangeLog: * rust-session-manager.cc (Session::expansion): Add early break on error. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diffstat (limited to 'gcc/rust')
-rw-r--r--gcc/rust/rust-session-manager.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc
index 8aeab40..c674a18 100644
--- a/gcc/rust/rust-session-manager.cc
+++ b/gcc/rust/rust-session-manager.cc
@@ -877,6 +877,9 @@ Session::expansion (AST::Crate &crate)
while (!fixed_point_reached && iterations < cfg.recursion_limit)
{
CfgStrip ().go (crate);
+ // Errors might happen during cfg strip pass
+ if (saw_errors ())
+ break;
auto ctx = Resolver2_0::NameResolutionContext ();