[PR 56419/c++]: C++ front end silently drops transactions
Jason Merrill
jason@redhat.com
Mon Feb 25 19:43:00 GMT 2013
On 02/22/2013 09:53 AM, Aldy Hernandez wrote:
> Frankly, I don't understand finish_transaction_stmt(), and why it sets
> TREE_SIDE_EFFECTS only if the [noexcept] clause is set. I'm C++
> ignorant, but I would've thought the opposite to be true.
It's setting that flag on the MUST_NOT_THROW_EXPR.
> Anyways, I've fixed the problem by setting TREE_SIDE_EFFECTS if the
> transaction body has side effects. Perhaps we should do this for
> build_transaction_expr() as well?
I would think managing the transaction boundaries would always have
side-effects, no? If that's correct, I'd set the flag unconditionally
in begin_transaction_stmt and build_transaction_expr.
Jason
More information about the Gcc-patches
mailing list