https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111855
Bug ID: 111855 Summary: GCC: 14: internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in useless_type_conversion_p, at gimple-expr.cc:265 Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: 141242068 at smail dot nju.edu.cn Target Milestone: --- When compile this program with GCC-14, gcc throws internal compiler error: ``` extern void *memmove(void [3], const void *, __SIZE_TYPE__); void f(void) { char s[] = "12345"; memmove(s + 1, s, 4); } ``` Compiler Explorer: https://gcc.godbolt.org/z/5zcnehhzo The full stack: ``` <source>:1:27: error: declaration of type name as array of voids 1 | extern void *memmove(void [3], const void *, __SIZE_TYPE__); | ^ <source>: In function 'f': <source>:6:12: error: type of formal parameter 1 is incomplete 6 | memmove(s + 1, s, 4); | ~~^~~ <source>:6:2: internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in useless_type_conversion_p, at gimple-expr.cc:265 6 | memmove(s + 1, s, 4); | ^~~~~~~ 0x230ff8e internal_error(char const*, ...) ???:0 0x8a8944 tree_class_check_failed(tree_node const*, tree_code_class, char const*, int, char const*) ???:0 0xdb9a31 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ???:0 0xdb9247 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ???:0 0xdbc21a gimplify_stmt(tree_node**, gimple**) ???:0 0xdba1c3 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ???:0 0xdbc21a gimplify_stmt(tree_node**, gimple**) ???:0 0xdb926f gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ???:0 0xdbc21a gimplify_stmt(tree_node**, gimple**) ???:0 0xdbe233 gimplify_body(tree_node*, bool) ???:0 0xdbe68f gimplify_function_tree(tree_node*) ???:0 0xbe7db7 cgraph_node::analyze() ???:0 0xbeb901 symbol_table::finalize_compilation_unit() ???:0 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. ```