[Bug c++/24439] [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw

2005-10-20 Thread cvs-commit at gcc dot gnu dot org
--- Comment #12 from cvs-commit at gcc dot gnu dot org 2005-10-20 15:19 --- Subject: Bug 24439 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-10-20 15:19:03 Modified files: gcc: ChangeLog fold-const.c gcc/testsuite

[Bug c++/24439] [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw

2005-10-19 Thread rguenth at gcc dot gnu dot org
--- Comment #2 from rguenth at gcc dot gnu dot org 2005-10-19 09:45 --- Ho humm, we had this before. invert_truthvalue is supposed to be called with sth that passes the truth_value_p check... But the real problem is the COND_EXPR has wrong types: cond_expr 0x4019b140 type

[Bug c++/24439] [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw

2005-10-19 Thread rguenth at gcc dot gnu dot org
--- Comment #3 from rguenth at gcc dot gnu dot org 2005-10-19 09:52 --- Of course we _can_ fix this in the middle-end, simply by allowing COND_EXPRs that satisfy the needs of C++ /* [expr.cond] One of the following shall hold: --The second or the third operand

[Bug c++/24439] [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw

2005-10-19 Thread rguenth at gcc dot gnu dot org
--- Comment #4 from rguenth at gcc dot gnu dot org 2005-10-19 10:06 --- Like so: Index: cp/call.c === RCS file: /cvs/gcc/gcc/gcc/cp/call.c,v retrieving revision 1.560 diff -c -3 -p -r1.560 call.c *** cp/call.c 18 Oct

[Bug c++/24439] [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw

2005-10-19 Thread mmitchel at gcc dot gnu dot org
--- Comment #5 from mmitchel at gcc dot gnu dot org 2005-10-19 20:11 --- If you don't want to fix this in the middle-end, the right way to handle this is in the C++ gimplifier. At that point, create a COMPOUND_EXPR whose second argument is *((T*) 0) for non-pointer types, or just ((T

[Bug c++/24439] [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw

2005-10-19 Thread rguenth at gcc dot gnu dot org
--- Comment #6 from rguenth at gcc dot gnu dot org 2005-10-19 20:40 --- Unfortunately we call into the middle-ends invert_truthvalue right in cp/typeck.c:build_unary_op as we build the TRUTH_NOT_EXPR, so at the time we reach the gimplifier we already crashed. So the other solution is

[Bug c++/24439] [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw

2005-10-19 Thread mark at codesourcery dot com
--- Comment #7 from mark at codesourcery dot com 2005-10-19 20:50 --- Subject: Re: [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw rguenth at gcc dot gnu dot org wrote: --- Comment #6 from rguenth at gcc dot gnu dot org 2005-10-19 20:40 ---

Re: [Bug c++/24439] [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw

2005-10-19 Thread Andrew Pinski
On Oct 19, 2005, at 4:50 PM, mark at codesourcery dot com wrote: --- Comment #7 from mark at codesourcery dot com 2005-10-19 20:50 --- Subject: Re: [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw rguenth at gcc dot gnu dot org wrote: --- Comment #6

[Bug c++/24439] [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw

2005-10-19 Thread pinskia at physics dot uc dot edu
--- Comment #8 from pinskia at gcc dot gnu dot org 2005-10-19 20:55 --- Subject: Re: [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw On Oct 19, 2005, at 4:50 PM, mark at codesourcery dot com wrote: --- Comment #7 from mark at codesourcery dot com

[Bug c++/24439] [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw

2005-10-19 Thread mark at codesourcery dot com
--- Comment #9 from mark at codesourcery dot com 2005-10-19 20:58 --- Subject: Re: [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw Mark did you look how long this bug as been here, it predates tree-ssa by a year. So I don't think we should change

[Bug c++/24439] [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw

2005-10-19 Thread rguenth at gcc dot gnu dot org
--- Comment #10 from rguenth at gcc dot gnu dot org 2005-10-19 21:51 --- Ok, I'll see how big the middle-end change would get. The easiest way would be to change invert_truthvalue to ignore void types and do nothing for them. Like + if (VOID_TYPE_P (TREE_TYPE (arg))) +return

[Bug c++/24439] [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw

2005-10-19 Thread mark at codesourcery dot com
--- Comment #11 from mark at codesourcery dot com 2005-10-19 22:14 --- Subject: Re: [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw rguenth at gcc dot gnu dot org wrote: --- Comment #10 from rguenth at gcc dot gnu dot org 2005-10-19 21:51 --- Ok,

[Bug c++/24439] [3.4/4.0/4.1 Regression] ICE with invert conditional containing throw

2005-10-18 Thread pinskia at gcc dot gnu dot org
--- Comment #1 from pinskia at gcc dot gnu dot org 2005-10-18 23:07 --- Confirmed, I am deciding if we can declare this as a regression as this did not ICE in 2.95.3 but was rejected which is just as bad. But since we decided before ICE from any thing is a regression, we can declare