-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Remove workarounds for several compiler bugs #1327
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
Removes workarounds for: * VSO-938163 "`constexpr` hates pointers", revealing VSO-1132704 "Bogus C3615 when implicitly-constexpr defaulted SMF calls non-trivial SMF in base class" and VSO-1217687 "Casting object reference to base and back loses track of member values in constant expression" beneath. * VSO-1002863 "Failure to short-circuit substitution when evaluating disjunction of atomic constraints" * VSO-1062618 "Asymmetric behavior from conditional operator with char32_t operands" * VSO-1174090 "Assertion failure for member subobject with multiple prospective destructors" * VSO-1125263 "EDG rejects valid code using consteval" * VSO-1132105 "[EDG] Error using non-static data member with dependent type in noexcept-specifier of member function template" * VSO-1132186 "[EDG] Weirdness with dependent template in noexcept-specifier" * VSO-1178211 "[EDG] Internal compiler error on template template parameter instantiated from inherited template" As a bonus, remove unnecessary workarounds for DevCom-1159442 "type-constraint in deduced variable type fails when immediately following an if statement"; these type-constraints don't follow the _compound-statement_ of an `if` conditional, and so don't trigger the bug.
miscco
left a comment
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.
All those red lines 👍
|
great, nice work compiler team and @CaseyCarter 👍 |
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.
This caused the MSVC-internal modules integration tests to fail, so we've had to drop it from the batch of PRs being merged. (I've verified that the modules integration tests are passing without this.) We need to investigate this.
MSVC implements P0848R3 and can now handle these constrained special member functions just fine ... except when imported as a module.
StephanTLavavej
left a comment
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.
Looks good to me - one newline comment but you don't need to reset testing for it (it can be fixed when the workaround is finally removed).
|
Thanks for this compiler regression test coverage! (I don't think this is Changelog-worthy - shout if I've missed something that users or contributors need to be made aware of.) |
Removes workarounds for:
constexprhates pointers", revealing VSO-1132704 "Bogus C3615 when implicitly-constexpr defaulted SMF calls non-trivial SMF in base class" and VSO-1217687 "Casting object reference to base and back loses track of member values in constant expression" beneath.Also relabels the workarounds for VSO-1174090 "Assertion failure for member subobject with multiple prospective destructors" (which is fixed!) as workarounds for VSO-1225825 "ModuleReader doesn't understand concept overloading".
As a bonus, remove unnecessary workarounds for DevCom-1159442 "type-constraint in deduced variable type fails when immediately following an if statement"; these type-constraints don't follow the compound-statement of an
ifconditional, and so don't trigger the bug.