https://issues.dlang.org/show_bug.cgi?id=21109
Issue ID: 21109 Summary: Possibly wrong codegen when using enum arrays Product: D Version: D2 Hardware: All OS: Mac OS X Status: NEW Severity: critical Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: andrej.mitrov...@gmail.com ----- import std.algorithm; import std.stdio; struct S { int i; int[] arr; } void main () { enum q1 = [ S(2, [0, 0]), ]; enum q2 = [ S(2, [0, 0]), ]; enum q3 = [ S(2, [1, 1]), ]; foreach (idx; 0 .. 10) // 10 iterations { const unique_count = [q1, q2, q3].sort.uniq.count; writefln("Uniques: %s", unique_count); } } ----- This produces: ``` $ dmd -run test.d > Uniques: 2 Uniques: 2 Uniques: 2 Uniques: 2 Uniques: 2 Uniques: 3 Uniques: 2 Uniques: 2 Uniques: 2 Uniques: 2 ``` Notice how in one run the number of uniques was 3! If I change `enum` to `auto` the bug goes away. --