Bug 24364 – Template emission failure: missing switch error symbol in std.uni

Status
NEW
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2024-01-31T18:46:31Z
Last change time
2024-12-13T19:32:56Z
Keywords
link-failure
Assigned to
No Owner
Creator
cc
Moved to GitHub: dmd#20391 →

Comments

Comment #0 by ofsfmq+2y1kh9wla11eg — 2024-01-31T18:46:31Z
The following minimal example fails to compile starting with dmd 2.099: import std.format; import std.regex; void main() { string ss = format("", ""); auto r = ctRegex!""; } with the error: error LNK2019: unresolved external symbol _D4core8internal7switch___T14__switch_errorZQrFNaNbNiNfAyamZv referenced in function _D3std3uni__T16UnicodeSetParserTSQBf5regex8internal6parser__T6ParserTAyaTSQCuQBpQBmQBg7CodeGenZQBiZQDi13parseCharTermMFNfZSQEr8typecons__T5TupleTSQFoQFn__T13InversionListTSQGoQGn8GcPolicyZQBhTEQHjQHi__TQHhTQGsZQHp8OperatorZQDh
Comment #1 by alphaglosined — 2024-02-01T07:20:18Z
This can be worked around by applying ``-allinst`` to require the compiler to emit all templates.
Comment #2 by robert.schadek — 2024-12-13T19:32:56Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/20391 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB