https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66755
Bug ID: 66755 Summary: [ARM] TARGET_ASM_OUTPUT_MI_THUNK should be rewritten to an RTL implementation Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: jgreenhalgh at gcc dot gnu.org CC: ramana at gcc dot gnu.org Target Milestone: --- Host: *-*-* Target: arm*-*-* The ARM target has some technical debt, in that it has not updated TARGET_ASM_OUTPUT_MI_THUNK to an RTL implementation, it continues to write directly to the assembler file. For ARM this can mean going through the heavyweight generic thunks implementation, rather than potentially putting out something much lighter. The generic implementation is very rarely tested now, as most (heavily tested) targets define TARGET_ASM_CAN_OUTPUT_MI_THUNK to hook_bool_const_tree_hwi_hwi_const_tree_true . See pr66666 for an example where this caused an issue for the ARM target with copy constructors wrapped through a virtual function call.