https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111903
--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The trunk branch has been updated by Andrew Pinski <pins...@gcc.gnu.org>: https://gcc.gnu.org/g:85e930ac8557c444680b5b29a0a13a14ea6672b5 commit r14-4859-g85e930ac8557c444680b5b29a0a13a14ea6672b5 Author: Andrew Pinski <pins...@gmail.com> Date: Fri Oct 20 14:49:32 2023 -0700 Use error_mark_node after error in convert While working on PR c/111903, I Noticed that convert will convert integer_zero_node to that type after an error instead of returning error_mark_node. From what I can tell this was the old way of not having error recovery since other places in this file does return error_mark_node and the places I am replacing date from when the file was imported into the repro (either via a gcc2 merge or earlier). I also had to update the objc front-end to allow for the error_mark_node change, I suspect you could hit the ICE without this change though. Bootstrapped and tested on x86_64-linux-gnu with no regressions. gcc/ChangeLog: * convert.cc (convert_to_pointer_1): Return error_mark_node after an error. (convert_to_real_1): Likewise. (convert_to_integer_1): Likewise. (convert_to_complex_1): Likewise. gcc/objc/ChangeLog: * objc-gnu-runtime-abi-01.cc (build_objc_method_call): Allow for error_operand after call to build_c_cast. * objc-next-runtime-abi-01.cc (build_objc_method_call): Likewise. * objc-next-runtime-abi-02.cc (build_v2_build_objc_method_call): Likewise.