https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62077
--- Comment #16 from Richard Biener <rguenth at gcc dot gnu.org> --- Ok, so what happens is that for build/genconfig.o we in one case write a STRING_CST with a const char[7] with itself as main-variant and in the other case with char[7] as main-variant. The STRING_CST is written from ipa_write_jump_function 4237 case IPA_JF_CONST: 4238 gcc_assert ( 4239 EXPR_LOCATION (jump_func->value.constant.value) == UNKNOWN_LOCATION); 4240 stream_write_tree (ob, jump_func->value.constant.value, true); 4241 break; as &"#endif"[0] Its type main variant is built in c-family/c-common.c:1021 and the literal itself in builtins.c:13383. And we indeed get differences in inline_param2 (min size), otherwise no visible differences anywhere in dumps. Not sure how that can explain the type difference for the jump function though... Again, this is build/genconfig.o as compiled by stage1 cc1plus vs. stage2 cc1plus (so faster to reproduce / bisect).