-
-
Notifications
You must be signed in to change notification settings - Fork 273
Resolve virtual base functions (super.foo()) correctly #1596
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
Conversation
Don't perform a vtable lookup for those, resolve them directly instead. Fixes issue ldc-developers#1450, where calling the base method in the overwritten method resulted in an infinite loop and corresponding stack overflow.
|
We have the same check for DelegateExp, the only other place where we call Test will follow once merged. ;) |
|
Updated as I figured the actual reason, not just the symptom. This was just begging for more issues. See my monologue in #1450. ;) |
|
I'm planning to extend the direct-sret-construction to return statements as well, not just variable declarations. |
For dmd-testsuite additions, I understand. But for IR tests, could you add them to the PR? (or perhaps it doesn't involve IR tests yet) |
|
There's no need to check the IR for this. It's actually quite hard to test this (properly visiting the CallExp); the testcase in #1450 can test one (current) symptom if it isn't visited. |
|
Seems like Travis was having network connectivity issues again; hope I didn't miss any failures because of that. |
Don't perform a vtable lookup for those, resolve them directly instead.
Fixes issue #1450, where calling the base method in the overriding method resulted in an infinite loop and corresponding stack overflow.