https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97644
--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Iain Buclaw <ibuc...@gcc.gnu.org>: https://gcc.gnu.org/g:5d4b824faf1e5846ec684a74f93912cf347928df commit r11-4979-g5d4b824faf1e5846ec684a74f93912cf347928df Author: Iain Buclaw <ibuc...@gdcproject.org> Date: Thu Nov 12 15:37:46 2020 +0100 d: Fix ICE in finish_thunk (PR97644) Because this what the upstream reference compiler did, thunks for the D front-end were associated with the class definition, so were forced code-gen even if the target function was extern. This has now been changed so there are now only generated if there is a function definition, fixing the ICE that occurred in PR 97644, which was caused by calling expand_thunk() early. gcc/d/ChangeLog: PR d/97644 * dmd/MERGE: Merge upstream dmd 95044d8e4. * d-target.cc (TargetCPP::thunkMangle): New function. * decl.cc (finish_thunk): Don't force expand thunks for external functions. (make_thunk): Emit thunks only if the function has a definition. Generate correct mangling for thunks to C++ classes. gcc/testsuite/ChangeLog: * gdc.dg/pr92216.d: Update scan-assember.