https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70650
--- Comment #13 from Jason Merrill <jason at gcc dot gnu.org> --- The darwin problem is with an ipa-icf thunk trying to pass the parameter on directly, which breaks because it's using the parameter's TREE_TYPE rather than DECL_ARG_TYPE. expand_call handles this transparently for integral promotions by way of promote_function_mode, but doesn't know how to do the equivalent here. This is a significant problem with trying to handle this transition in the front end rather than the back end (as H.J.'s patch did).