[c++17] Implement P0145R3 during constant evaluation.
authorRichard Smith <richard@metafoo.co.uk>
Tue, 6 Oct 2020 00:52:23 +0000 (17:52 -0700)
committerRichard Smith <richard@metafoo.co.uk>
Tue, 6 Oct 2020 19:30:26 +0000 (12:30 -0700)
commit00d3e6c1b4d0b7879afc6002b721111b49ecf755
tree8dfe13c5d2728617615e6d07c0f236732eed984a
parentd85b845cb2550216b2a05c5dee451f423a4e4946
[c++17] Implement P0145R3 during constant evaluation.

Ensure that we evaluate assignment and compound-assignment
right-to-left, and array subscripting left-to-right.

Fixes PR47724.

This is a re-commit of ded79be, reverted in 37c74df, with a fix and test
for the crasher bug previously introduced.
clang/lib/AST/ExprConstant.cpp
clang/test/SemaCXX/constant-expression-cxx1z.cpp
clang/www/cxx_status.html