[Bug c/101171] [10 Regression] ICE: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in c_expr_sizeof_expr, at c/c-typeck.c:3006
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed May 11 06:20:54 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101171
--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:be5f5f6ea368e2b8b9a0012ecbe2e83aeabdf714
commit r9-10083-gbe5f5f6ea368e2b8b9a0012ecbe2e83aeabdf714
Author: Jakub Jelinek <jakub@redhat.com>
Date: Thu Jun 24 15:55:28 2021 +0200
c: Fix C cast error-recovery [PR101171]
The following testcase ICEs during error-recovery, as build_c_cast calls
note_integer_operands on error_mark_node and that wraps it into
C_MAYBE_CONST_EXPR which is unexpected and causes ICE later on.
Seems most other callers of note_integer_operands check early if something
is error_mark_node and return before calling note_integer_operands on it.
The following patch fixes it by not calling on error_mark_node, another
possibility would be to handle error_mark_node in note_integer_operands and
just return it.
2021-06-24 Jakub Jelinek <jakub@redhat.com>
PR c/101171
* c-typeck.c (build_c_cast): Don't call note_integer_operands on
error_mark_node.
* gcc.dg/pr101171.c: New test.
(cherry picked from commit fdc5522fb04b4a820b28c4d1f16f54897f5978de)
More information about the Gcc-bugs
mailing list