HomePhabricator

Revert rL360499 and rL360464 from cfe/trunk: Reject attempts to call non-static…

Authored by RKSimon on May 11 2019, 1:21 PM.

Description

Revert rL360499 and rL360464 from cfe/trunk: Reject attempts to call non-static member functions on objects outside their lifetime in constant expressions.

This is undefined behavior per [class.cdtor]p2.

We continue to allow this for objects whose values are not visible
within the constant evaluation, because there's no way we can tell
whether the access is defined or not, existing code relies on the
ability to make such calls, and every other compiler allows such
calls.
........
Fix handling of objects under construction during constant expression
evaluation.

It's not enough to just track the LValueBase that we're evaluating, we
need to also track the path to the objects whose constructors are
running.
........
Fixes windows buildbots

llvm-svn: 360531

Details

Committed
sidorovdMay 17 2019, 3:02 AM
Parents
rGaaba479b6097: [X86] Add scalar shl+lshr -> shift+mask tests (PR40758)
Branches
Unknown
Tags
Unknown