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 19857 - Name mangling mismatch when compiling with -dip1000 #9789
Conversation
Thanks for your pull request, @WalterBright! Bugzilla references
Testing this PR locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub fetch digger
dub run digger -- build "stable + dmd#9789" |
63201b7
to
9d3b0a7
Compare
test/compilable/scopeinfer.d
Outdated
//pragma(msg, S.top.mangleof); | ||
|
||
version (Win32) | ||
static assert(S.top.mangleof == "_D4test__T5StackZQh3topMFNaNbNcNiNfZPi"); |
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.
What about other platforms?
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.
The complete mangling varies slightly from platform to platform, but the issue under test does not, so one platform will suffice.
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.
@wilzbach That line needs to s/4test/10scopeinfer/
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.
Changed.
dlang-bot says this should target the stable branch. Otherwise, LGTM. |
All bug fixes should target stable. |
But it's still blocking a lot of people using -dip1000 and we want to push it out as early as possible, hence I rebased to stable for you. |
2bb0ff8
to
118da36
Compare
Oh, not again with the borked up git history. |
Sebastian already changed to stable. |
@WalterBright Sebastian fixed the commits for you. Don't push anything else. |
Yup and I also rebased your commits. You reverted that my force-pushing over it. I restored it for you again.
(and changing the target branch to stable) |
fail_compilation/retscope.d(249): Error: cannot implicitly convert expression `__lambda1` of type `void* delegate() pure nothrow @nogc @safe` to `void* delegate() @safe` | ||
fail_compilation/retscope.d(249): Error: cannot implicitly convert expression `__lambda1` of type `void* delegate() pure nothrow @nogc @safe` to `void* delegate() @safe` | ||
fail_compilation/retscope.d(250): Error: cannot implicitly convert expression `__lambda2` of type `void* delegate() pure nothrow @nogc @safe` to `void* delegate() @safe` | ||
fail_compilation/retscope.d(250): Error: cannot implicitly convert expression `__lambda2` of type `void* delegate() pure nothrow @nogc @safe` to `void* delegate() @safe` |
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.
That does not look good though. I'm all for the mangling change, but it shouldn't break the error message.
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.
The error message was changed because DMD used different mangling (and thus function names) with -preview=dip1000
No description provided.