dmd/compiler/test/runnable/extra-files/link20802b.d
Tim Schendekehl 6a2fe78ba4
Fix Bugzilla 20802 - Link failure with writefln (#16200)
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.
2024-02-19 06:35:00 +08:00

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; }
}