diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2023-03-12 21:43:31 +0100 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gdcproject.org> | 2023-03-13 21:57:03 +0100 |
commit | 499b07700f0e679a490c2e3b80ca7c382dd737ab (patch) | |
tree | e7c4275262cf9c28ee167e917ebf00b0a949fddd /libgcc | |
parent | 6360bf9a2d08f08c151464c77c0da53cd702ff25 (diff) | |
download | gcc-499b07700f0e679a490c2e3b80ca7c382dd737ab.zip gcc-499b07700f0e679a490c2e3b80ca7c382dd737ab.tar.gz gcc-499b07700f0e679a490c2e3b80ca7c382dd737ab.tar.bz2 |
d: Refactor DECL_ARGUMENT and DECL_RESULT generation to own function
When looking into PR109108, the reason why things go awry is because
of the logic around functions with thunks - they have their definitions
generated even when they are external. This subsequently then relied on
the detection of whether a function receiving codegen really is extern
or not, and this check ultimately prunes too much.
This is a first step to both removing the call to `build_decl_tree' from
`make_thunk' and the pruning of symbols within the `build_decl_tree'
visitor method for functions. Move the generation of DECL_ARGUMENT and
DECL_RESULT out of `build_decl_tree' and into their own functions.
gcc/d/ChangeLog:
* decl.cc (get_fndecl_result): New function.
(get_fndecl_arguments): New function.
(DeclVisitor::visit (FuncDeclaration *)): Adjust to call
get_fndecl_arguments.
(make_thunk): Adjust to call get_fndecl_arguments and
get_fndecl_result.
(start_function): Adjust to call get_fndecl_result.
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions