diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2023-03-14 13:16:11 +0100 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gdcproject.org> | 2023-03-14 19:15:14 +0100 |
commit | 423d34f61c43e400f0d5b837fe93c83963b2ecdd (patch) | |
tree | c8d51cc66b2eee8494df5e6ca061c2fc17c583dc /gcc/fortran | |
parent | 1526ecd739fc6a13329abdcbdbf7c2df57c22177 (diff) | |
download | gcc-423d34f61c43e400f0d5b837fe93c83963b2ecdd.zip gcc-423d34f61c43e400f0d5b837fe93c83963b2ecdd.tar.gz gcc-423d34f61c43e400f0d5b837fe93c83963b2ecdd.tar.bz2 |
d: Fix undefined reference to lambda defined in private enum [PR109108]
Previously lambdas were connected to the module they were defined in.
Now they are emitted into every referencing compilation unit, and are
given one-only linkage.
PR d/109108
gcc/d/ChangeLog:
* decl.cc (function_defined_in_root_p): Remove.
(get_symbol_decl): Set DECL_LAMBDA_FUNCTION_P on function literals.
(start_function): Unconditionally unset DECL_EXTERNAL
(set_linkage_for_decl): Give lambda functions one-only linkage.
gcc/testsuite/ChangeLog:
* gdc.dg/torture/imports/pr109108.d: New test.
* gdc.dg/torture/pr109108.d: New test.
Diffstat (limited to 'gcc/fortran')
0 files changed, 0 insertions, 0 deletions