Bug 89135 - [7 Regression] internal compiler error: in gimple_split_edge, at tree-cfg.c:2747
Summary: [7 Regression] internal compiler error: in gimple_split_edge, at tree-cfg.c:2747
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 6.3.0
: P2 normal
Target Milestone: 7.5
Assignee: Richard Biener
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2019-01-31 06:54 UTC by Shubham Narlawar
Modified: 2019-09-02 14:14 UTC (History)
1 user (show)

See Also:
Host: x86_64-linux-gnu
Target: x86_64-linux-gnu
Build: x86_64-linux-gnu
Known to work: 7.4.1, 8.2.1, 9.0
Known to fail: 7.4.0, 8.2.0
Last reconfirmed: 2019-01-31 00:00:00


Attachments
Preprocessed code of file named "work11_crash.c" (47.21 KB, text/plain)
2019-01-31 06:54 UTC, Shubham Narlawar
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Shubham Narlawar 2019-01-31 06:54:14 UTC
Created attachment 45572 [details]
Preprocessed code of file named "work11_crash.c"

$ gcc -v

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 6.3.0-18+deb9u1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix

gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)



-----------------------------------------------------------------------------
COMMAND USED FOR COMPILATION

$ gcc -O1 work11_crash.c -w
work11_crash.c: In function ‘func_12’:
work11_crash.c:355:17: internal compiler error: in gimple_split_edge, at tree-cfg.c:2747
 static int32_t  func_12(uint64_t  p_13, uint64_t  p_14, uint32_t  p_15)
                 ^~~~~~~
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-6/README.Bugs> for instructions.

-----------------------------------------------------------------------------

REDUCED FILE USING CREDUCE

#include "csmith.h"
a, b, c, d, e;
f() {
  &&g;
  int32_t h;
  if (h) {
    int64_t **i = &a;
    b = 0;
    for (; b >= 0;)
      ;
  g:
    **i = 0;
    uint64_t *j = &c;
    *j = safe_rshift_func_uint8_t_u_s(0, 5);
    if (c)
      goto *d;
  }
  goto *e;
}

------------------------------------------------------------------------------
Comment 1 Jakub Jelinek 2019-01-31 08:08:12 UTC
Started with r246500.  Note, GCC 6 is not supported anymore.
Reduced testcase:
typedef __INTPTR_TYPE__ intptr_t;
intptr_t a, b, c, d;
int foo (void) { return 0; }
int baz (void);

void
bar (void) {
  intptr_t g = (intptr_t) &&h;
  void *i = &&j, *k = &&l;
j:
  if (baz ()) {
    intptr_t **n = (intptr_t **) &a;
  l:
    b = 0;
    for (; b >= 0;)
      goto *k;
  h:
    **n = 0;
    for (;;) {
      intptr_t *o = &c;
      g = foo ();
      *o = g;
      if (c)
        goto *d;
    }
  }
  goto *i;
}
Comment 2 Richard Biener 2019-01-31 08:23:11 UTC
I will have a looksee.
Comment 3 Shubham Narlawar 2019-01-31 08:28:10 UTC
I could reproduce the ICE on gcc-8.2 but not on trunk.
Comment 4 Richard Biener 2019-01-31 11:52:31 UTC
Author: rguenth
Date: Thu Jan 31 11:51:59 2019
New Revision: 268417

URL: https://gcc.gnu.org/viewcvs?rev=268417&root=gcc&view=rev
Log:
2019-01-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89135
	* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
	with abnormal preds.

	* gcc.dg/torture/pr89135.c: New testcase.

Added:
    trunk/gcc/testsuite/gcc.dg/torture/pr89135.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-ssa-phiprop.c
Comment 5 Richard Biener 2019-01-31 11:52:42 UTC
Fixed on trunk sofar.
Comment 6 Richard Biener 2019-02-06 12:56:34 UTC
Author: rguenth
Date: Wed Feb  6 12:56:02 2019
New Revision: 268578

URL: https://gcc.gnu.org/viewcvs?rev=268578&root=gcc&view=rev
Log:
2019-02-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-01-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89135
	* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
	with abnormal preds.

	* gcc.dg/torture/pr89135.c: New testcase.

	2019-01-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/88903
	* tree-vect-stmts.c (vectorizable_shift): Verify we see all
	scalar stmts a SLP shift amount is composed of when detecting
	shifts by scalars.

	* gcc.dg/vect/pr88903-1.c: New testcase.
	* gcc.dg/vect/pr88903-2.c: Likewise.

Added:
    branches/gcc-8-branch/gcc/testsuite/gcc.dg/torture/pr89135.c
    branches/gcc-8-branch/gcc/testsuite/gcc.dg/vect/pr88903-1.c
    branches/gcc-8-branch/gcc/testsuite/gcc.dg/vect/pr88903-2.c
Modified:
    branches/gcc-8-branch/gcc/ChangeLog
    branches/gcc-8-branch/gcc/testsuite/ChangeLog
    branches/gcc-8-branch/gcc/tree-ssa-phiprop.c
    branches/gcc-8-branch/gcc/tree-vect-stmts.c
Comment 7 Richard Biener 2019-09-02 14:14:31 UTC
Fixed.
Comment 8 Richard Biener 2019-09-02 14:14:47 UTC
Author: rguenth
Date: Mon Sep  2 14:14:14 2019
New Revision: 275319

URL: https://gcc.gnu.org/viewcvs?rev=275319&root=gcc&view=rev
Log:
2019-09-02  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-03-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89710
	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
	safe_dyn_cast.

	* gcc.dg/torture/pr89710.c: New testcase.

	2019-03-14  Richard Biener  <rguenther@suse.de>

	PR middle-end/89572
	* tree-scalar-evolution.c (get_loop_exit_condition): Use
	safe_dyn_cast.
	* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
	Use gimple_location_safe.

	* gcc.dg/torture/pr89572.c: New testcase.

	2019-02-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89296
	* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
	of no-warning flag to cases that might emit the bogus warning.

	* gcc.dg/uninit-pr89296.c: New testcase.

	2019-02-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/89392
	cp/
	* vtable-class-hierarchy.c (vtv_generate_init_routine): Do not
	make symtab process new functions here.

	2019-01-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89135
	* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
	with abnormal preds.

	* gcc.dg/torture/pr89135.c: New testcase.

Added:
    branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89135.c
    branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89572.c
    branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89710.c
    branches/gcc-7-branch/gcc/testsuite/gcc.dg/uninit-pr89296.c
Modified:
    branches/gcc-7-branch/gcc/ChangeLog
    branches/gcc-7-branch/gcc/cp/ChangeLog
    branches/gcc-7-branch/gcc/cp/vtable-class-hierarchy.c
    branches/gcc-7-branch/gcc/testsuite/ChangeLog
    branches/gcc-7-branch/gcc/tree-scalar-evolution.c
    branches/gcc-7-branch/gcc/tree-ssa-loop-ch.c
    branches/gcc-7-branch/gcc/tree-ssa-loop-ivcanon.c
    branches/gcc-7-branch/gcc/tree-ssa-phiprop.c