https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
--- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> --- The issue is that a diagnostic is passing NULL to a %qH (which was a %qT). %T handles NULL gracefully by printing the empty string, whereas %H/%I fail with an assertion failure. Happens here: #8 0x000000000081469e in joust(z_candidate*, z_candidate*, bool, int) [clone .part.38] () at ../../src/gcc/cp/call.c:10075 10075 && warning (OPT_Wconversion, " for conversion from %qH to %qI", 10076 source, w->second_conv->type)) (gdb) p source $2 = (tree_node *) 0x0 (gdb) p w->second_conv->type $3 = <record_type 0x7ffff0072690 tuple>