dmd/compiler/test/compilable/testcstuff3.d
Abul Hossain Khan 228f8dbcea
Improve fix: #20867 ICE on final switch forward referencing its enum. (#21097)
* Mark C enums as semantic2done to prevent segfaults in final switch

* Added corresponding test case
2025-03-28 10:13:12 +01:00

23 lines
426 B
D

// EXTRA_FILES: imports/cstuff3.c
import imports.cstuff3;
static assert(squared(4) == 16);
/* test case for issue #21094 */
string enum_to_str(E)(E v) if (is(E == enum))
{
final switch (v) with(E)
{
static foreach (m; __traits(allMembers, E))
{
case mixin(m):
return m;
}
}
}
void testEnumSwitch()
{
auto str = enum_to_str(UPNG_EOK);
assert(str == "UPNG_EOK");
}