Bug 9526 – ICE when compiling project with unittests
Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-02-17T02:15:00Z
Last change time
2013-02-18T05:46:45Z
Keywords
ice, pull
Assigned to
nobody
Creator
verylonglogin.reg
Comments
Comment #0 by verylonglogin.reg — 2013-02-17T02:15:44Z
Another unreducable regression: dmd fails to compile this project with unittest enabled as an unhandled exception (on Windwos) is thrown in its entrails:
https://github.com/denis-sh/phobos-additions
To be precise, this is the project commit on which dmd fails this way: df789da96db5c707dca27b81b285ea8861a0fb98
Comment #1 by verylonglogin.reg — 2013-02-17T02:17:48Z
And yes, this project used to compile in 2.061.
Comment #2 by k.hara.pg — 2013-02-17T03:33:04Z
Is this a dup of bug9525?
Comment #3 by verylonglogin.reg — 2013-02-17T08:12:34Z
(In reply to comment #2)
> Is this a dup of bug9525?
Nop. This is another, really nasty, one. No messages, no errors - just dmd crash.
Comment #4 by maxim — 2013-02-17T09:16:50Z
That's because in func.c void markAsNeedingClosure() doesn't check data when loops though the list.
Can you test this commit https://github.com/mxfm/dmd/commit/f04bba02261b59a033495cf090711bf0a08dd64e ?
I compiled your code on linux with command:
dmd unstd/array.d unstd/lifetime.d unstd/generictuple.d unstd/math.d unstd/multidimensionalarray.d unstd/templates.d unstd/traits.d unstd/typecons.d unittest.d -unittest -version=unittestBuild
Commit at least fixes segmentation fault for my D environment. Judging by visual D project files, you are compiling on windows and I cannot test dmd on windows.
Comment #6 by verylonglogin.reg — 2013-02-17T22:52:38Z
(In reply to comment #4)
> That's because in func.c void markAsNeedingClosure() doesn't check data when
> loops though the list.
>
> Can you test this commit
> https://github.com/mxfm/dmd/commit/f04bba02261b59a033495cf090711bf0a08dd64e ?
>
> ...
Thanks a lot! Your change does fix dmd crash on Windows too.