[Bug tree-optimization/83104] [8 Regression] ICE: Segmentation fault

2017-11-22 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83104

Markus Trippelsdorf  changed:

   What|Removed |Added

 CC||amodra at gmail dot com

--- Comment #6 from Markus Trippelsdorf  ---
*** Bug 83119 has been marked as a duplicate of this bug. ***

[Bug tree-optimization/83104] [8 Regression] ICE: Segmentation fault

2017-11-22 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83104

Markus Trippelsdorf  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Markus Trippelsdorf  ---
Fixed.

[Bug tree-optimization/83104] [8 Regression] ICE: Segmentation fault

2017-11-22 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83104

--- Comment #4 from Marc Glisse  ---
Author: glisse
Date: Wed Nov 22 16:44:46 2017
New Revision: 255068

URL: https://gcc.gnu.org/viewcvs?rev=255068&root=gcc&view=rev
Log:
Avoid two_valued_val_range_p for pointers.

2017-11-22  Marc Glisse  

PR tree-optimization/83104
gcc/
* vr-values.c (simplify_stmt_using_ranges): Check integral argument,
not result.

gcc/testsuite/
* gcc.c-torture/compile/pr83104.c: New file.


Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr83104.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/vr-values.c

[Bug tree-optimization/83104] [8 Regression] ICE: Segmentation fault

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83104

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |8.0

--- Comment #3 from Richard Biener  ---
(In reply to Marc Glisse from comment #2)
> two_valued_val_range_p doesn't work on pointers, it uses vrp_val_min on the
> type of the arguments. Probably:
> 
> --- vr-values.c   (revision 255021)
> +++ vr-values.c   (working copy)
> @@ -4091,7 +4091,7 @@ vr_values::simplify_stmt_using_ranges (g
>LHS = VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST) */
>  
>if (TREE_CODE_CLASS (rhs_code) == tcc_binary
> -   && INTEGRAL_TYPE_P (TREE_TYPE (lhs))
> +   && INTEGRAL_TYPE_P (TREE_TYPE (rhs1))
> && ((TREE_CODE (rhs1) == INTEGER_CST
>  && TREE_CODE (rhs2) == SSA_NAME)
> || (TREE_CODE (rhs2) == INTEGER_CST
> 
> (or keep both tests)

and/or make two_valued_val_range_p return false for !INTEGRAL_TYPE_P

the above and/or this is pre-approved.

[Bug tree-optimization/83104] [8 Regression] ICE: Segmentation fault

2017-11-22 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83104

--- Comment #2 from Marc Glisse  ---
two_valued_val_range_p doesn't work on pointers, it uses vrp_val_min on the
type of the arguments. Probably:

--- vr-values.c (revision 255021)
+++ vr-values.c (working copy)
@@ -4091,7 +4091,7 @@ vr_values::simplify_stmt_using_ranges (g
 LHS = VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST) */

   if (TREE_CODE_CLASS (rhs_code) == tcc_binary
- && INTEGRAL_TYPE_P (TREE_TYPE (lhs))
+ && INTEGRAL_TYPE_P (TREE_TYPE (rhs1))
  && ((TREE_CODE (rhs1) == INTEGER_CST
   && TREE_CODE (rhs2) == SSA_NAME)
  || (TREE_CODE (rhs2) == INTEGER_CST

(or keep both tests)

[Bug tree-optimization/83104] [8 Regression] ICE: Segmentation fault

2017-11-21 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83104

Markus Trippelsdorf  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-11-22
 CC||glisse at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Markus Trippelsdorf  ---
Started with r255021 (POINTER_DIFF_EXPR).