diff --git a/c2rust-transpile/src/translator/mod.rs b/c2rust-transpile/src/translator/mod.rs index d269e023f1..6d7d1b77da 100644 --- a/c2rust-transpile/src/translator/mod.rs +++ b/c2rust-transpile/src/translator/mod.rs @@ -483,7 +483,8 @@ fn clean_path(mod_names: &RefCell>, path: Option<&path pub fn translate_failure(tcfg: &TranspilerConfig, msg: &str) { error!("{}", msg); if tcfg.fail_on_error { - panic!("Translation failed, see error above"); + error!("Translation failed, exiting"); + std::process::exit(1); } } diff --git a/scripts/test_translator.py b/scripts/test_translator.py index ef1c8d675e..9aff69a980 100755 --- a/scripts/test_translator.py +++ b/scripts/test_translator.py @@ -86,6 +86,9 @@ def translate(self, cc_db: str, ld_lib_path: str, extra_args: List[str] = []) -> "--overwrite-existing", ] + # return nonzero if translation fails + args.append("--fail-on-error") + if self.disable_incremental_relooper: args.append("--no-incremental-relooper") if self.disallow_current_block: