Re: [PATCH v2] Fix c++/67371 (issues with throw in constexpr)

2015-08-29 Thread Jason Merrill
On 08/29/2015 06:14 AM, Markus Trippelsdorf wrote: + if (integer_nonzerop (IF_COND (t)) && !RECUR (THEN_CLAUSE (t), any)) + return false; + if (integer_zerop (IF_COND (t)) && !RECUR (ELSE_CLAUSE (t), any)) + return false; Actually, I think we can remove the IF_

Re: [PATCH v2] Fix c++/67371 (issues with throw in constexpr)

2015-08-29 Thread Markus Trippelsdorf
On 2015.08.29 at 12:14 +0200, Markus Trippelsdorf wrote: > index 1eacb8be9a44..29a7f1f22169 100644 > --- a/gcc/cp/constexpr.c > +++ b/gcc/cp/constexpr.c > @@ -4276,10 +4276,10 @@ potential_constant_expression_1 (tree t, bool > want_rval, bool strict, > case IF_STMT: >if (!RECUR (IF_CO

Re: [PATCH v2] Fix c++/67371 (issues with throw in constexpr)

2015-08-29 Thread Markus Trippelsdorf
On 2015.08.28 at 22:23 -0400, Jason Merrill wrote: > On 08/28/2015 08:00 AM, Markus Trippelsdorf wrote: > > As PR67371 shows gcc currently rejects all throw statements in > > constant-expressions, even when they are never executed. > > > > Fix by simply allowing THROW_EXPR in potential_constant_exp