This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/71031] [6/7 Regression] ICE in extract_range_from_binary_expr_1, at tree-vrp.c:2535 w/ -Os


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71031

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-05-10
      Known to work|                            |5.3.0
   Target Milestone|---                         |6.2
            Summary|[7 Regression] ICE in       |[6/7 Regression] ICE in
                   |extract_range_from_binary_e |extract_range_from_binary_e
                   |xpr_1, at tree-vrp.c:2535   |xpr_1, at tree-vrp.c:2535
                   |w/ -Os                      |w/ -Os
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.

#1  0x00000000011690fc in extract_range_from_binary_expr_1 (vr=0x7fffffffd8b0, 
    code=PLUS_EXPR, expr_type=<integer_type 0x7ffff688b888 unsigned int>, 
    vr0_=0x7fffffffd790, vr1_=0x7fffffffd7b0)
    at /space/rguenther/src/svn/trunk3/gcc/tree-vrp.c:2534
2534                      gcc_assert ((min_ovf == -1 && max_ovf == 0)
(gdb) l
2529                    {
2530                      /* Min underflow or max overflow.  The range kind
2531                         changes to VR_ANTI_RANGE.  */
2532                      bool covers = false;
2533                      wide_int tem = tmin;
2534                      gcc_assert ((min_ovf == -1 && max_ovf == 0)
2535                                  || (max_ovf == 1 && min_ovf == 0));
2536                      type = VR_ANTI_RANGE;
2537                      tmin = tmax + 1;
2538                      if (wi::cmp (tmin, tmax, sgn) < 0)
(gdb) p min_ovf
$1 = 1
(gdb) p max_ovf
$2 = 0

also ICEs on the GCC 6 branch.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]