]> granicus.if.org Git - clang/commit
Fix handling of objects under construction during constant expression
authorRichard Smith <richard-llvm@metafoo.co.uk>
Sun, 12 May 2019 08:57:59 +0000 (08:57 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Sun, 12 May 2019 08:57:59 +0000 (08:57 +0000)
commitc3d00e1444a2eb121d76b7e01b68887a6109209a
tree8820965d23a57af6c0eca037c9ff45eeb637ceb4
parent0ec8105cd9ce6be9233d60301f3e00dc5a26f5f7
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.

This reinstates r360464 (reverted in r360531) with a workaround for an
MSVC bug that previously caused the Windows bots to fail.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@360537 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/APValue.h
include/clang/AST/Redeclarable.h
include/clang/Basic/DiagnosticASTKinds.td
lib/AST/APValue.cpp
lib/AST/ExprConstant.cpp
test/SemaCXX/constant-expression-cxx1y.cpp