[Issue 17072] [REG 2.073.0-b1] missing symbols with -inline
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Sun Jan 15 09:58:10 PST 2017
https://issues.dlang.org/show_bug.cgi?id=17072
Martin Nowak <code at dawg.eu> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bugzilla at digitalmars.com,
| |code at dawg.eu
--- Comment #1 from Martin Nowak <code at dawg.eu> ---
There is a difference between the mangling of the symbol included in
phobos64.lib and the one requested.
phobos64.lib has:
_D4core4time8Duration46__T10opOpAssignVAyaa1_2dTS4core4time8DurationZ10opOpAssignMFNaNbNcNiNjNfxS4core4time8DurationZS4core4time8Duration
linker wants:
_D4core4time8Duration46__T10opOpAssignVAyaa1_2dTS4core4time8DurationZ10opOpAssignMFNaNbNcNiNfxS4core4time8DurationZS4core4time8Duration
ddemangle doesn't yet know Nj, it stands for FuncAttrReturn
(https://dlang.org/spec/abi.html#FuncAttrReturn).
So what we have here is likely a difference in return inference in different
compilations, leading the test below to think that the template was already
instantiated by druntime, therefor not emitting it itself, but the
instantiation in druntime inferred a different STCreturn.
It's only reproducible w/ -inline b/c that runs semantic3 on imported functions
and templates.
Happens because the released library is build with -dip25 which enables return
inference and obviously creates ABI incompatibilities.
--
More information about the Digitalmars-d-bugs
mailing list