[Bug middle-end/78507] [7 Regression] ICE: tree check: expected integer_type or enumeral_type or boolean_type or real_type or fixed_point_type, have pointer_type in int_fits_type_p, at tree.c:9153
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78507 Richard Biener changed: What|Removed |Added CC||dcb314 at hotmail dot com --- Comment #7 from Richard Biener --- *** Bug 78533 has been marked as a duplicate of this bug. ***
[Bug middle-end/78507] [7 Regression] ICE: tree check: expected integer_type or enumeral_type or boolean_type or real_type or fixed_point_type, have pointer_type in int_fits_type_p, at tree.c:9153
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78507 Markus Trippelsdorf changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #6 from Markus Trippelsdorf --- Fixed, thanks.
[Bug middle-end/78507] [7 Regression] ICE: tree check: expected integer_type or enumeral_type or boolean_type or real_type or fixed_point_type, have pointer_type in int_fits_type_p, at tree.c:9153
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78507 --- Comment #5 from amker at gcc dot gnu.org --- Author: amker Date: Fri Nov 25 11:45:43 2016 New Revision: 242874 URL: https://gcc.gnu.org/viewcvs?rev=242874&root=gcc&view=rev Log: PR middle-end/78507 PR middle-end/78510 PR middle-end/78517 * match.pd ((cond (cmp (convert1? @1) @3) (convert2? @1) @2)): Use cmp directly, rather than cmp_code. Initialize code to ERROR_MARK and set it to result code if transformation is valid. Use code EQ directly in last simplification case. gcc/testsuite PR middle-end/78507 PR middle-end/78510 PR middle-end/78517 * g++.dg/torture/pr78507.C: New test. * gcc.dg/torture/pr78510.c: New test. * gcc.dg/torture/pr78517.c: New test. Added: trunk/gcc/testsuite/g++.dg/torture/pr78507.C trunk/gcc/testsuite/gcc.dg/torture/pr78510.c trunk/gcc/testsuite/gcc.dg/torture/pr78517.c Modified: trunk/gcc/ChangeLog trunk/gcc/match.pd trunk/gcc/testsuite/ChangeLog
[Bug middle-end/78507] [7 Regression] ICE: tree check: expected integer_type or enumeral_type or boolean_type or real_type or fixed_point_type, have pointer_type in int_fits_type_p, at tree.c:9153
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78507 --- Comment #4 from amker at gcc dot gnu.org --- Types of @2/@3 are guarded by INTEGER_CST@2/INTEGER_CST@3, but type of @1 is not checked. Should check INTEGRAL_TYPE_P for it before calling int_fits_type_p.
[Bug middle-end/78507] [7 Regression] ICE: tree check: expected integer_type or enumeral_type or boolean_type or real_type or fixed_point_type, have pointer_type in int_fits_type_p, at tree.c:9153
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78507 Richard Biener changed: What|Removed |Added Priority|P3 |P1 Target Milestone|--- |7.0
[Bug middle-end/78507] [7 Regression] ICE: tree check: expected integer_type or enumeral_type or boolean_type or real_type or fixed_point_type, have pointer_type in int_fits_type_p, at tree.c:9153
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78507 --- Comment #3 from Richard Biener --- Indeed int_fits_type_p requires an integral type.
[Bug middle-end/78507] [7 Regression] ICE: tree check: expected integer_type or enumeral_type or boolean_type or real_type or fixed_point_type, have pointer_type in int_fits_type_p, at tree.c:9153
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78507 amker at gcc dot gnu.org changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |amker at gcc dot gnu.org --- Comment #2 from amker at gcc dot gnu.org --- Thanks for reporting, I will investigate.
[Bug middle-end/78507] [7 Regression] ICE: tree check: expected integer_type or enumeral_type or boolean_type or real_type or fixed_point_type, have pointer_type in int_fits_type_p, at tree.c:9153
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78507 Markus Trippelsdorf changed: What|Removed |Added Keywords||ice-on-valid-code Status|UNCONFIRMED |NEW Last reconfirmed||2016-11-24 CC||amker at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Markus Trippelsdorf --- Started with r242750: commit 83c0fb434a2895d17dad003751a3cb88afafd298 Author: amker Date: Wed Nov 23 12:44:08 2016 + * fold-const.c (fold_cond_expr_with_comparison): Move simplification for A cmp C1 ? A : C2 to below, also simplify remaining code. * match.pd: Move and extend simplification from above to here: (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)). * tree-if-conv.c (ifcvt_follow_ssa_use_edges): New func. (predicate_scalar_phi): Call fold_stmt using the new valueize func.