Bug 58131 - ICE in execute, tree-vrp.c:9616 (in both 32-bit and 64-bit modes)
Summary: ICE in execute, tree-vrp.c:9616 (in both 32-bit and 64-bit modes)
Status: RESOLVED DUPLICATE of bug 57393
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: unknown
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-08-11 21:45 UTC by Zhendong Su
Modified: 2013-11-27 23:41 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Zhendong Su 2013-08-11 21:45:43 UTC
The following code causes an ICE when compiled with the current gcc trunk at -O3 on x86_64-linux (both 32-bit and 64-bit modes). This is a regression from 4.8.x.

$ gcc-trunk -v
gcc version 4.9.0 20130811 (experimental) [trunk revision 201651] (GCC) 
$ gcc-trunk -O2 -c small.c  
$ gcc-4.8 -O3 -c small.c
$ gcc-trunk -O3 -c small.c
small.c: In function ‘foo’:
small.c:5:6: internal compiler error: Segmentation fault
 void foo ()
      ^
0x7e02bf crash_signal
	../../gcc-trunk/gcc/toplev.c:335
0x808dfb ssa_default_def(function*, tree_node*)
	../../gcc-trunk/gcc/tree-dfa.c:314
0x8090c0 get_or_create_ssa_default_def(function*, tree_node*)
	../../gcc-trunk/gcc/tree-dfa.c:362
0x822a1a get_reaching_def
	../../gcc-trunk/gcc/tree-into-ssa.c:1184
0x8289ca maybe_replace_use
	../../gcc-trunk/gcc/tree-into-ssa.c:1784
0x8289ca rewrite_update_stmt
	../../gcc-trunk/gcc/tree-into-ssa.c:1967
0x8289ca rewrite_update_enter_block
	../../gcc-trunk/gcc/tree-into-ssa.c:2136
0xb43e9a walk_dominator_tree(dom_walk_data*, basic_block_def*)
	../../gcc-trunk/gcc/domwalk.c:210
0x8216e3 rewrite_blocks
	../../gcc-trunk/gcc/tree-into-ssa.c:2216
0x827c7e update_ssa(unsigned int)
	../../gcc-trunk/gcc/tree-into-ssa.c:3319
0x940aa8 insert_range_assertions
	../../gcc-trunk/gcc/tree-vrp.c:6102
0x940aa8 execute_vrp
	../../gcc-trunk/gcc/tree-vrp.c:9515
0x940aa8 execute
	../../gcc-trunk/gcc/tree-vrp.c:9616
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
$ 



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


short a;
int b, c;
int d[1][4][2];

void foo ()
{
  int *e;
  for (b = 1;; b--)
    {
      if (*e)
	break;
      for (c = 2; c >= 0; c--)
        {
	  *e |= d[0][3][b] != a;
	  int *f = &d[0][3][b];
	  *f = 0;
        }
    }
}
Comment 1 Marek Polacek 2013-08-12 05:41:56 UTC
Dup (no ICE with -fno-tree-reassoc).

*** This bug has been marked as a duplicate of bug 57393 ***
Comment 2 Jakub Jelinek 2013-11-27 23:41:59 UTC
Author: jakub
Date: Wed Nov 27 23:41:56 2013
New Revision: 205466

URL: http://gcc.gnu.org/viewcvs?rev=205466&root=gcc&view=rev
Log:
	PR middle-end/57393
	PR tree-optimization/58018
	PR tree-optimization/58131
	* gcc.dg/torture/pr57393-1.c: New test.
	* gcc.dg/torture/pr57393-2.c: New test.
	* gcc.dg/torture/pr57393-3.c: New test.
	* gcc.dg/torture/pr58018.c: New test.
	* gcc.dg/torture/pr58131.c: New test.
	* gfortran.dg/pr57393-1.f90: New test.
	* gfortran.dg/pr57393-2.f90: New test.

Added:
    trunk/gcc/testsuite/gcc.dg/torture/pr57393-1.c
    trunk/gcc/testsuite/gcc.dg/torture/pr57393-2.c
    trunk/gcc/testsuite/gcc.dg/torture/pr57393-3.c
    trunk/gcc/testsuite/gcc.dg/torture/pr58018.c
    trunk/gcc/testsuite/gcc.dg/torture/pr58131.c
    trunk/gcc/testsuite/gfortran.dg/pr57393-1.f90
    trunk/gcc/testsuite/gfortran.dg/pr57393-2.f90
Modified:
    trunk/gcc/testsuite/ChangeLog