-
-
Notifications
You must be signed in to change notification settings - Fork 262
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ICE with LDC >= 1.16.0 #3094
Comments
👍 for using a CI build to check for earlier assertions. :) |
Yes, that was the idea 😉 As soon as I figure out the right way to cast a dustmite spell, you'll have also have a test case... |
It might be simpler/faster to use |
So far Dustmite reduced my 6.4k LOC / 39 |
😉 |
Final test case: void printMembers(T, alias sink)(T)
{
typeof(sink) inner_sink = msg => (sink, sink(msg));
}
class Node
{
void toString(void delegate(const(char)) sink)
{
printMembers!(typeof(this), sink)(this);
}
}
|
From the reduced test case:
From original the source:
Wow, it looks like I was trying to use the side effect and the result of a comma expression 😮 Changing my code to: typeof(sink) inner_sink = (msg) { sink(nest_ws); sink(msg); }; Fixed the problem. |
[I meant looking at the last few lines to get source file and line number of the offending function and starting manually from there.] Anyway, the problem is a new AST ugliness - void foo();
void bar()
{
return foo(); // rewritten as `foo(); return;`
} |
Fixes an ICE with LDC 1.16.0. See ldc-developers/ldc#3094 for more details.
Fixes ldc-developers#3094, a regression introduced in v1.16 due to AST changes.
Fixes ldc-developers#3094, a regression introduced in v1.16 due to AST changes.
Fixes #3094, a regression introduced in v1.16 due to AST changes.
With
ldc-1.16.0
andldc-latest-ci
=ldc-3f2a9303
I get the following ICE:ldc-1.15.0
and earlier compile the same code without problems.dmd-2.087.0-beta.1
dmd-2.086.1
and earlier also seem to work fine.Sorry for the lack of a test case right now, I'll work on a reduced one soon.
The text was updated successfully, but these errors were encountered: