[Bug middle-end/55832] [4.8 Regression] ICE in fold_convert_loc, at fold-const.c:1967
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55832 --- Comment #6 from Marc Glisse glisse at gcc dot gnu.org 2013-01-03 08:56:47 UTC --- (In reply to comment #5) I've slightly adjusted the testcase, so that it at least doesn't violate strict aliasing, unfortunately without the uninitialized c it doesn't trigger. And I couldn't find a way to create ABS_EXPR of vectors using vector types directly. I would also like a way to generate ABS_EXPR and MAX_EXPR for vectors, but for this specific bug, it is probably easier to stick to unsigned types: typedef unsigned long vec __attribute__((vector_size(16))); void f(vec* x){ *x = (*x = 0) ? *x : 0; }
[Bug middle-end/55832] [4.8 Regression] ICE in fold_convert_loc, at fold-const.c:1967
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55832 --- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2013-01-03 09:02:51 UTC --- Author: jakub Date: Thu Jan 3 09:02:41 2013 New Revision: 194836 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=194836 Log: PR tree-optimization/55832 * fold-const.c (fold_binary_loc): For ABS_EXPRx = 0 and ABS_EXPRx 0 folding use constant_boolean_node instead of integer_{one,zero}_node. * gcc.c-torture/compile/pr55832.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/compile/pr55832.c Modified: trunk/gcc/ChangeLog trunk/gcc/fold-const.c trunk/gcc/testsuite/ChangeLog
[Bug middle-end/55832] [4.8 Regression] ICE in fold_convert_loc, at fold-const.c:1967
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55832 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2013-01-03 09:09:58 UTC --- Fixed.
[Bug middle-end/55832] [4.8 Regression] ICE in fold_convert_loc, at fold-const.c:1967
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55832 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org |gnu.org | --- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2013-01-02 09:07:06 UTC --- Created attachment 29072 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29072 gcc48-pr55832.patch Indeed, and omit_one_operand_loc can deal with converting integer_zero_node to a zero vector, but can't cope with converting integer_one_node into a constant boolean true vector. I've slightly adjusted the testcase, so that it at least doesn't violate strict aliasing, unfortunately without the uninitialized c it doesn't trigger. And I couldn't find a way to create ABS_EXPR of vectors using vector types directly.
[Bug middle-end/55832] [4.8 Regression] ICE in fold_convert_loc, at fold-const.c:1967
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55832 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-12-31 Component|tree-optimization |middle-end Known to work||4.6.3 Target Milestone|--- |4.8.0 Summary|ICE in fold_convert_loc, at |[4.8 Regression] ICE in |fold-const.c:1967 |fold_convert_loc, at ||fold-const.c:1967 Ever Confirmed|0 |1 --- Comment #1 from Richard Biener rguenth at gcc dot gnu.org 2012-12-31 16:33:43 UTC --- Confirmed.
[Bug middle-end/55832] [4.8 Regression] ICE in fold_convert_loc, at fold-const.c:1967
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55832 Andrew Pinski pinskia at gcc dot gnu.org changed: What|Removed |Added Keywords||ice-on-valid-code --- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2012-12-31 21:13:25 UTC --- Here is the backtrace: 0x7129d4 fold_convert_loc(unsigned int, tree_node*, tree_node*) ../../gcc/fold-const.c:1967 0x712d17 omit_one_operand_loc(unsigned int, tree_node*, tree_node*, tree_node*) ../../gcc/fold-const.c:2943 0x6fa26f fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) ../../gcc/fold-const.c:13522 0x9b37b9 combine_cond_expr_cond ../../gcc/tree-ssa-forwprop.c:367 0x9b6124 forward_propagate_into_comparison_1 ../../gcc/tree-ssa-forwprop.c:414 0x9bd8e3 forward_propagate_into_cond ../../gcc/tree-ssa-forwprop.c:562 0x9bd8e3 ssa_forward_propagate_and_combine ../../gcc/tree-ssa-forwprop.c:3013
[Bug middle-end/55832] [4.8 Regression] ICE in fold_convert_loc, at fold-const.c:1967
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55832 Andrew Pinski pinskia at gcc dot gnu.org changed: What|Removed |Added Target||x86_64-*-* --- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org 2012-12-31 21:14:43 UTC --- Note the ICE is in the forwprop after vectorization.
[Bug middle-end/55832] [4.8 Regression] ICE in fold_convert_loc, at fold-const.c:1967
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55832 --- Comment #4 from Marc Glisse glisse at gcc dot gnu.org 2013-01-01 03:15:46 UTC --- (In reply to comment #2) 0x6fa26f fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) ../../gcc/fold-const.c:13522 This line uses integer_one_node instead of calling constant_boolean_node.