mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 05:00:16 +03:00

The issue is caused by compiling druntime/phobos and the application with different flags. The template instance for __switch_errorT is not included in the build of druntime/phobos, because they are compiled with -release. DMD will also not include it in an application compiled without -release, because it assumes, that it is already in druntime. See comment https://issues.dlang.org/show_bug.cgi?id=20802#c3 by Spoov. The template instance for __switch_errorT is now always instantiated in druntime, so it is part of the ABI of druntime.
30 lines
559 B
D
30 lines
559 B
D
module link20802b;
|
|
|
|
// First test from https://issues.dlang.org/show_bug.cgi?id=20802#c3
|
|
|
|
enum TransformRes { goOn }
|
|
|
|
void writeAligned()()
|
|
{
|
|
final switch (TransformRes.goOn) { case TransformRes.goOn: break; }
|
|
}
|
|
|
|
struct GcPolicy {}
|
|
alias CodepointSet = InversionList!GcPolicy;
|
|
struct InversionList(SP=GcPolicy)
|
|
{
|
|
this()(uint[] intervals...)
|
|
{
|
|
sanitize();
|
|
}
|
|
|
|
void sanitize()
|
|
{
|
|
writeAligned();
|
|
}
|
|
}
|
|
|
|
void decodeGrapheme(Input)(ref Input inp)
|
|
{
|
|
final switch (TransformRes.goOn) { case TransformRes.goOn: break; }
|
|
}
|