HomePhabricator

P0145R3 (C++17 evaluation order tweaks): evaluate the right-hand side of…

Authored by Richard Smith <richard-llvm@metafoo.co.uk> on Sep 27 2016, 4:44 PM.

Description

P0145R3 (C++17 evaluation order tweaks): evaluate the right-hand side of assignment and compound-assignment operators before the left-hand side. (Even if it's an overloaded operator.)

This completes the implementation of P0145R3 + P0400R0 for all targets except
Windows, where the evaluation order guarantees for <<, >>, and ->* are
unimplementable as the ABI requires the function arguments are evaluated from
right to left (because parameter destructors are run from left to right in the
callee).

llvm-svn: 282556

Details

Event Timeline

Richard Smith <richard-llvm@metafoo.co.uk> committed rG97a616d62447: P0145R3 (C++17 evaluation order tweaks): evaluate the right-hand side of… (authored by Richard Smith <richard-llvm@metafoo.co.uk>).Sep 27 2016, 4:44 PM