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
Fix Issue 17489 - ICE in ddmd/argtypes.d #6894
Conversation
|
@@ -0,0 +1,12 @@ | |||
// REQUIRED_ARGS: -Ifail_compilation/extra-files |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If EXTRA_SOURCES
is used, this ICE doesn't appear.
As in the other PRs on this issue, the error should be checked for further up the call stack. |
I can't reproduce this. I suggest looking at in finalizeSize() at where toArgtypes() is called. I suggest looking at https://github.com/dlang/dmd/pull/6875/files in particular why that fix is not working for you. |
Hmm is this maybe dependent on the platform?
It seems like there isn't an error in
I tried moving it a bit higher, but I am not sure how to get it into |
@@ -341,6 +341,8 @@ extern (C++) TypeTuple toArgTypes(Type t) | |||
{ | |||
VarDeclaration f = t.sym.fields[i]; | |||
//printf(" [%d] %s f.type = %s\n", cast(int)i, f.toChars(), f.type.toChars()); | |||
if (f.type.ty == Terror) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed, here is not the right place to check errors in one of the fields, should happen when semantic for the fields runs in finalizeSize or so.
It is finalizeSize() calling toArgTypes(). Check for the error in finalizeSize(). |
The root of the problem is that |
Closed in favor of #6902. |
Funny thing - the ICE in Vibe.d 0.7.31-rc.2 was fixed #6875 and can't be observed anymore, but in the dustmited example (it just took quite a bit for dustmite too reduce it).