https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119614
--- Comment #42 from Jakub Jelinek <jakub at gcc dot gnu.org> --- ipa_record_return_value_range is called on the Error FUNCTION_DECL, but during ltrans time tailc pass is asking about Error.constprop.isra instead. I think the reason why #c26 works and #c37 doesn't is that when the hack put the singleton return value into an attribute, that attribute is preserved across cloning, while nothing in the #c37 patch propagates the ipa_return_value_sum entry to the clone. Guess one possible fix might be to copy over the ipa_return_value_sum entries during cloning which doesn't change the return type.