// file bad.d: import std.process; void main(char[][] argv) { bool cond = false; while( cond ) try { } catch { } execvp( argv[0], argv ); } // end of file Compilation error: sergey:/tmp/eh$ dmd |head -1 Digital Mars D Compiler v1.028 sergey:/tmp/eh$ dmd -release -inline -c bad.d Internal error: eh.c 41 sergey:/tmp/eh$ Sorry if it is duplicate of #1337 but my issue seem to have nothing to do with threads or memory allocation. This code is useless but I hit the bug with much more code, this is just the minimal version that still triggers compilation error.
Hello, is there anybody here? :)
Yes. What do you want someone to say? You found a bug, reported it with an example. About the only constructive thing to be said is, "fixed" and that's not going to happen for a few days at the least (more likely it will be a few releases). No comments means nobody has anything constructive to say, not that you are being ignored.
OK, thanks.
WFM DMD 1.036 Windows. Can you still reproduce under Linux?
Ran into this on Linux with DMD 2.20. I'm working on isolating the piece of code that's the problem, but it's definitely still a problem.
Line eh.c (41) states: #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS : // BUG: alloca() changes the stack size, which is not reflected // in the fixed eh tables. assert(!usedalloca); So this is a known bug.
I'm closing this because the original bug has been fixed, and all known test cases pass. Create a new bug if a new test case is discovered. It'll be a different bug, even if it ICEs at the same location.