diff options
| author | Iain Buclaw <ibuclaw@gdcproject.org> | 2020-11-12 15:37:46 +0100 | 
|---|---|---|
| committer | Iain Buclaw <ibuclaw@gdcproject.org> | 2020-11-13 14:58:58 +0100 | 
| commit | 5d4b824faf1e5846ec684a74f93912cf347928df (patch) | |
| tree | 3f315f89a5c9204937e5425580254ac995400584 /libcpp/expr.c | |
| parent | 5fa821bba737cf3e74801c5fe4d3e87a62aa79bf (diff) | |
| download | gcc-5d4b824faf1e5846ec684a74f93912cf347928df.zip gcc-5d4b824faf1e5846ec684a74f93912cf347928df.tar.gz gcc-5d4b824faf1e5846ec684a74f93912cf347928df.tar.bz2 | |
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.
Diffstat (limited to 'libcpp/expr.c')
0 files changed, 0 insertions, 0 deletions
