https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105293
--- Comment #2 from Elmar Stellnberger <estellnb at elstel dot org> --- One of the differences I see around the backtrace is that the type source_location has been changed into location_t. I could change this in tree-outof-ssa.c, but in reality the change has been made in many files between gcc 8.3.0 and gcc 9.2.0 (did not find 9.2.1). Another change around the backtrace is that the following code block has been stripped from pass_expand::execute: if (chkp_function_instrumented_p (current_function_decl)) chkp_reset_rtl_bounds (); However the following in input.h would say it were without effect to change location_t: typedef source_location location_t; pass_expand is at the very bottom of the stack trace and if it is really these two lines then great, but it could also be the data passed into this process. The assert that fails is: expr.c:220: gcc_assert (from_mode != BLKmode); // convert_move from_mode originates from 389 copy_rtx(SA.partition_to_pseudo[src]) // insert_part_to_rtx_on_edge 733 g->stack_pop() -> src // procedure eliminate_phi 909 elim_graph g(sa->map) // procedure expand_phi_nodes On the other hand perhaps the issue could not even be resolved with 9.2.0. This was just my first guess.