A small Java program found in a blog post: class Flow { static public void main(String[] args) { for (int i = 0; i < 6; ++i) { System.out.println("Loop: " + i); try { try { if (i == 3) break; } finally { if (i % 2 != 0) throw new Exception(""); } } catch (Exception e) { System.out.println("Caught"); } } } } Its output: Loop: 0 Loop: 1 Caught Loop: 2 Loop: 3 Caught Loop: 4 Loop: 5 Caught A D translation: import std.stdio; void main() { foreach (i; 0 .. 6) { writeln("Loop: ", i); try { try { if (i == 3) break; } finally { if (i % 2 != 0) throw new Exception(""); } } catch (Exception e) { writeln("Caught"); } } } dmd 2.063beta prints: Loop: 0 Loop: 1 Caught Loop: 2 Loop: 3 And then it crashes. Various people in D.learn and on IRC show that maybe this fails only on 32 bit Windows.
I can't reproduce this.
Reopened because the problem is still present, on Windows Vista 32 bit, dmd 2.065alpha. This issue was discussed on IRC with several persons.
It works on Win64 and fails on Win32.
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/18580 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB