October 23, 2020 [Issue 21299] [LINK] undefined reference to dmd.root.stringtable.StringValue!(Type).StringValue.lstring() | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=21299 --- Comment #9 from Dlang Bot <dlang-bot@dlang.rocks> --- dlang/dmd pull request #11896 "Revert "Fix Issue 21299: Undefined reference to dmd.root.stringtable.StringValue!(Type).lstring()"" was merged into stable: - e2e76d744d3f5f46ecf66ae67cf4089c6711be2e by Iain Buclaw: Revert "Fix Issue 21299: Undefined reference to dmd.root.stringtable.StringValue!(Type).lstring()" This reverts commit 32273e82ec9ba3f4022f03e7e12d5d4a384dc3ba. - 74966ae8f8325459df753c3bbe62c54751712ab3 by Iain Buclaw: Issue 21299: Add regression test for another undefined reference issue https://github.com/dlang/dmd/pull/11896 -- |
October 23, 2020 [Issue 21299] [LINK] undefined reference to dmd.root.stringtable.StringValue!(Type).StringValue.lstring() | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=21299 --- Comment #10 from Dlang Bot <dlang-bot@dlang.rocks> --- dlang/dmd pull request #11901 "[dmd-cxx] Issue 21299: Add regression test for another undefined reference issue" was merged into dmd-cxx: - 503316612bd7b70bf0e73930710ef27e3494bf03 by Iain Buclaw: [dmd-cxx] Issue 21299: Add regression test for another undefined reference issue https://github.com/dlang/dmd/pull/11901 -- |
November 16, 2020 [Issue 21299] [LINK] undefined reference to dmd.root.stringtable.StringValue!(Type).StringValue.lstring() | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=21299 --- Comment #11 from Dlang Bot <dlang-bot@dlang.rocks> --- dlang/dmd pull request #11961 "merge stable" was merged into master: - 92758ee0f100dd2b3bd72714e4db415e1bd876f3 by Iain Buclaw: Fix Issue 21299: Undefined reference to dmd.root.stringtable.StringValue!(Type).lstring() In `templateInstanceSemantic`, there exists special handling of matching template instances for the same template declaration to ensure that only at most one instance gets codegen'd. If the primary instance `inst` originated from a non-root module, the `minst` field will be updated so it is now coming from a root module, however all Dsymbol `inst.members` of the instance still have their `_scope.minst` pointing at the original non-root module. We must now propagate `minst` to all members so that forward referenced dependencies that get instantiated will also be appended to the root module, otherwise there will be undefined references at link-time. This doesn't affect compilations where all modules are compiled together, as every module is a root module in that situation. What this primarily affects are cases where there is a mix of root and non-root modules, and a template was first instantiated in a non-root context, then later instantiated again in a root context. - 32273e82ec9ba3f4022f03e7e12d5d4a384dc3ba by Iain Buclaw: Fix Issue 21299: Undefined reference to dmd.root.stringtable.StringValue!(Type).lstring() Alternative patch where instead of proactively fixing up instance members when a template gets changed to a root instance, rather propagate the `minst` as and when we run semantic on the nested templates that still have a non-root `minst` from its scope. - 05cbd224e621a858927a1d6e2debbebbb8e246b2 by Iain Buclaw: Revert "Fix Issue 21299: Undefined reference to dmd.root.stringtable.StringValue!(Type).lstring()" This reverts commit 32273e82ec9ba3f4022f03e7e12d5d4a384dc3ba. - cf518229cf08aacee8d681b18b855f94ae8201a6 by Iain Buclaw: Issue 21299: Add regression test for another undefined reference issue https://github.com/dlang/dmd/pull/11961 -- |
Copyright © 1999-2021 by the D Language Foundation