https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101597
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|tree-optimization |c++ Summary|[12 Regression] ICE in evrp |[12 Regression] ICE in |since |pretty-printer formatting |r12-2132-ga110855667782dac |an OBJ_TYPE_REF since | |r12-2132-ga110855667782dac --- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> --- The ICE happens in a call to inform(..., "...%qE...", allocfn) with allocfn set to the OBJ_TYPE_REF argument below. The pretty-printer winds up passing the argument to resolve_virtual_fun_from_obj_type_ref() in cp/error.c which computes a null pointer that it eventually dereferences. The inform() call looks valid to me so the bug is most likely in the C++ frond end's pretty-printer. <obj_type_ref 0x7fffea9d3630 type <pointer_type 0x7fffea987f18 type <method_type 0x7fffea987bd0 type <pointer_type 0x7fffea981348> QI size <integer_cst 0x7fffea7f6fd8 constant 8> unit-size <integer_cst 0x7fffea816000 constant 1> align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fffea987bd0 method basetype <record_type 0x7fffea96b690 PluginViewBase> arg-types <tree_list 0x7fffea9881e0 value <pointer_type 0x7fffea9879d8> chain <tree_list 0x7fffea9881b8 value <pointer_type 0x7fffea981348> chain <tree_list 0x7fffea80a8e8 value <void_type 0x7fffea814f18 void>>>> pointer_to_this <pointer_type 0x7fffea987f18>> public unsigned DI size <integer_cst 0x7fffea7f6ee8 constant 64> unit-size <integer_cst 0x7fffea7f6f00 constant 8> align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fffea987f18> arg:0 <ssa_name 0x7fffea9cc630 type <pointer_type 0x7fffea952498 __vtbl_ptr_type type <function_type 0x7fffea9523f0> public unsigned type_6 DI size <integer_cst 0x7fffea7f6ee8 64> unit-size <integer_cst 0x7fffea7f6f00 8> align:64 warn_if_not_align:0 symtab:0 alias-set 5 canonical-type 0x7fffea952498 pointer_to_this <pointer_type 0x7fffea952690>> visited def_stmt _12 = *_11; version:12 ptr-info 0x7fffea9d5f30> arg:1 <ssa_name 0x7fffea9cc558 type <pointer_type 0x7fffea98f000 type <record_type 0x7fffea981540 Widget> public unsigned DI size <integer_cst 0x7fffea7f6ee8 64> unit-size <integer_cst 0x7fffea7f6f00 8> align:64 warn_if_not_align:0 symtab:0 alias-set 7 canonical-type 0x7fffea98f000 pointer_to_this <pointer_type 0x7fffea9a43f0>> def_stmt pluginScriptObjectFromPluginViewBase_pluginWidget.2_9 = ASSERT_EXPR <pluginScriptObjectFromPluginViewBase_pluginWidget.2_10, pluginScriptObjectFromPluginViewBase_pluginWidget.2_10 != 0B>; version:9 ptr-info 0x7fffea9d9000> arg:2 <integer_cst 0x7fffea816288 type <integer_type 0x7fffea8145e8 int> constant 0>>