[Bug c++/58635] [c++11] ICE with __transaction_atomic and noexcept(false)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58635 --- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org --- Author: mpolacek Date: Wed Oct 9 14:51:28 2013 New Revision: 203323 URL: http://gcc.gnu.org/viewcvs?rev=203323root=gccview=rev Log: PR c++/58635 cp/ * semantics.c (finish_return_stmt): Return error_mark_node when error_operand_p of the expr is true. (build_transaction_expr): Check for EXPR_P before setting the expr location. testsuite/ * g++.dg/tm/pr58635-1.C: New test. * g++.dg/tm/pr58635-2.C: New test. Added: trunk/gcc/testsuite/g++.dg/tm/pr58635-1.C trunk/gcc/testsuite/g++.dg/tm/pr58635-2.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/semantics.c trunk/gcc/testsuite/ChangeLog
[Bug c++/58635] [c++11] ICE with __transaction_atomic and noexcept(false)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58635 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #4 from Marek Polacek mpolacek at gcc dot gnu.org --- Fixed.
[Bug c++/58635] [c++11] ICE with __transaction_atomic and noexcept(false)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58635 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-10-07 CC||mpolacek at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org --- For the first two it needs the same fix as for PR58516: --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -5221,7 +5221,8 @@ build_transaction_expr (location_t loc, tree expr, int flags, tree if (noex) { expr = build_must_not_throw_expr (expr, noex); - SET_EXPR_LOCATION (expr, loc); + if (EXPR_P (expr)) + SET_EXPR_LOCATION (expr, loc); TREE_SIDE_EFFECTS (expr) = 1; } ret = build1 (TRANSACTION_EXPR, TREE_TYPE (expr), expr);
[Bug c++/58635] [c++11] ICE with __transaction_atomic and noexcept(false)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58635 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |mpolacek at gcc dot gnu.org --- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org --- Mine.