[Bug middle-end/89790] New: [9 Regression] ICE segfault in operand_equal_p() at fold-const.c:3000 with -Wduplicated-cond since r269838

belyshev at depni dot sinp.msu.ru gcc-bugzilla@gcc.gnu.org
Thu Mar 21 17:49:00 GMT 2019


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

            Bug ID: 89790
           Summary: [9 Regression] ICE segfault in operand_equal_p() at
                    fold-const.c:3000 with -Wduplicated-cond since r269838
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: belyshev at depni dot sinp.msu.ru
                CC: rguenth at gcc dot gnu.org
  Target Milestone: ---

Fix for bug 89779 (r269838) caused ICE during gdb build.  Reduced testcase,
compile with -O -Wduplicated-cond:

template <typename> class a {
  typedef a b;
  template <typename> void c();
};
template <typename d> template <typename> void a<d>::c() {
  int f;
  b g;
  if (g == 0)
    ;
  else if (f)
    {
    }
}


Partial backtrace:

Program received signal SIGSEGV, Segmentation fault.
operand_equal_p (arg0=0x7ffff76df7e0, arg1=0x7ffff76df740, flags=16) at
../../gcc/gcc/fold-const.c:3000
3000          if (TYPE_UNSIGNED (TREE_TYPE (arg0)) != TYPE_UNSIGNED (TREE_TYPE
(arg1))
(gdb) bt
#0  operand_equal_p (arg0=0x7ffff76df7e0, arg1=0x7ffff76df740, flags=16) at
../../gcc/gcc/fold-const.c:3000
#1  0x0000000000c9ac8b in operand_equal_p (arg0=arg0@entry=0x7ffff76df7e0,
arg1=arg1@entry=0x7ffff76df740, 
    flags=flags@entry=0) at ../../gcc/gcc/fold-const.c:2950
#2  0x0000000000b0c572 in warn_duplicated_cond_add_or_warn (loc=<optimized
out>, cond=cond@entry=0x7ffff76df7e0, 
    chain=chain@entry=0x7fffffffdd88) at ../../gcc/gcc/c-family/c-warn.c:2318
#3  0x00000000009c4846 in cp_parser_selection_statement (chain=<optimized out>,
if_p=0x0, parser=0x7ffff7fd0ab0)
    at ../../gcc/gcc/cp/parser.c:11784
#4  cp_parser_statement (parser=0x7ffff7fd0ab0, in_statement_expr=0x0,
in_compound=<optimized out>, if_p=0x0, 
    chain=<optimized out>, loc_after_labels=0x7fffffffddec) at
../../gcc/gcc/cp/parser.c:11147
#5  0x00000000009de4f8 in cp_parser_implicitly_scoped_statement
(parser=parser@entry=0x7ffff7fd0ab0, 
    if_p=if_p@entry=0x0, guard_tinfo=..., chain=0x25323d0) at
../../gcc/gcc/cp/parser.c:13004
#6  0x00000000009c4788 in cp_parser_selection_statement (chain=<optimized out>,
if_p=0x0, parser=0x7ffff7fd0ab0)
    at ../../gcc/gcc/cp/parser.c:11865
...


More information about the Gcc-bugs mailing list