[Bug c++/58635] [c++11] ICE with __transaction_atomic and noexcept(false)

2013-10-09 Thread mpolacek at gcc dot gnu.org
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)

2013-10-09 Thread mpolacek at gcc dot gnu.org
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)

2013-10-07 Thread mpolacek at gcc dot gnu.org
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)

2013-10-07 Thread mpolacek at gcc dot gnu.org
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.