Bug 48988 - [4.7 regression] ICE at pred_chain_length_cmp at tree-ssa-uninit.c:1624
Summary: [4.7 regression] ICE at pred_chain_length_cmp at tree-ssa-uninit.c:1624
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 4.7.0
: P3 normal
Target Milestone: 4.7.0
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2011-05-13 15:44 UTC by Joel Sherrill
Modified: 2011-06-06 10:26 UTC (History)
4 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2011-05-13 20:51:30


Attachments
fix (255 bytes, patch)
2011-05-21 23:30 UTC, davidxl
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Joel Sherrill 2011-05-13 15:44:17 UTC
This is a regression from 4.6.

What can I provide to help get this resolved?

/home2/joel/build/b-powerpc-ada/./gcc/xgcc -B/home2/joel/build/b-powerpc-ada/./gcc/ -B/users/joel/test-gcc/install-svn/powerpc-rtems4.11/bin/ -B/users/joel/test-gcc/install-svn/powerpc-rtems4.11/lib/ -isystem /users/joel/test-gcc/install-svn/powerpc-rtems4.11/include -isystem /users/joel/test-gcc/install-svn/powerpc-rtems4.11/sys-include    -c -g -O2   -W -Wall -gnatpg   g-catiio.adb -o g-catiio.o
+===========================GNAT BUG DETECTED==============================+
| 4.7.0 20110512 (experimental) (powerpc-unknown-rtems4.11) GCC error:     |
| vector VEC(use_pred_info_t,base) index domain error, in                  |
|     pred_chain_length_cmp at tree-ssa-uninit.c:1624                      |
| Error detected around g-catiio.adb:198:4                                 |
| Please submit a bug report; see http://gcc.gnu.org/bugs.html.            |
| Use a subject line meaningful to you and us to track the bug.            |
| Include the entire contents of this bug box in the report.               |
| Include the exact gcc or gnatmake command that you entered.              |
| Also include sources listed below in gnatchop format                     |
| (concatenated together with no headers between files).                   |
+==========================================================================+
Comment 1 Eric Botcazou 2011-05-13 20:51:30 UTC
> What can I provide to help get this resolved?

As always, a reduced testcase.  Introduced by:

2011-03-15  Xinliang David Li  <davidxl@google.com>

	PR c/47837
	* tree-ssa-uninit.c (pred_chain_length_cmp): New function.
	(normalize_preds): New function.
	(is_use_properly_guarded): Normalize def predicates.

I also saw it during an LTO bootstrap with Ada enabled at some point.
Comment 2 Matthias Klose 2011-05-21 09:21:55 UTC
PR48799 shows an ICE in the same location
Comment 3 Eric Botcazou 2011-05-21 09:27:39 UTC
To reproduce on Linux, in the build dir:

  cp gcc/ada/rts/system.ads .
  chmod a+w system.ads
  edit system.ads and change ZCX_By_Default to False
  gcc/gnat1 gcc/ada/rts/g-catiio.adb -Igcc/ada/rts -Wall -O

This breaks the compiler on all SJLJ platforms, e.g. arm-linux.
Comment 4 davidxl 2011-05-21 17:13:22 UTC
(In reply to comment #3)
> To reproduce on Linux, in the build dir:
> 
>   cp gcc/ada/rts/system.ads .
>   chmod a+w system.ads
>   edit system.ads and change ZCX_By_Default to False
>   gcc/gnat1 gcc/ada/rts/g-catiio.adb -Igcc/ada/rts -Wall -O
> 
> This breaks the compiler on all SJLJ platforms, e.g. arm-linux.


On x86_linux, I can not reproduce the problem:

Using the test case, got the following:

GNAT.CALENDAR.TIME_IO.AM_PM GNAT.CALENDAR.TIME_IO.HOUR_12 GNAT.CALENDAR.TIME_IO.IMAGE GNAT.CALENDAR.TIME_IO.IMAGE GNAT.CALENDAR.TIME_IO.IMAGE GNAT.CALENDAR.TIME_IO.IMAGE.PAD_CHAR GNAT.CALENDAR.TIME_IO.IMAGE GNAT.CALENDAR.TIME_IO.IMAGE GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B96B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B107B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B118B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B129B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B140B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B151B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B162B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B173B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B184B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B195B GNAT.CALENDAR.TIME_IO.IMAGE.B_2.B224B GNAT.CALENDAR.TIME_IO.IMAGE.B_2.B239B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B250B GNAT.CALENDAR.TIME_IO.IMAGE.B_3.B282B GNAT.CALENDAR.TIME_IO.IMAGE.B_3.B295B GNAT.CALENDAR.TIME_IO.IMAGE.B_3.B308B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B319B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B342B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B359B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B376B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B392B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B408B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B420B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B432B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B444B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B455B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B478B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B489B GNAT.CALENDAR.TIME_IO.IMAGE.B_4.B500B GNAT.CALENDAR.TIME_IO.IMAGE.B_5.B511B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B522B GNAT.CALENDAR.TIME_IO.IMAGE.B_6.B534B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B545B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B558B GNAT.CALENDAR.TIME_IO.MONTH_NAME_TO_NUMBER GNAT.CALENDAR.TIME_IO.VALUE GNAT.CALENDAR.TIME_IO.VALUE.EXTRACT_DATE GNAT.CALENDAR.TIME_IO.VALUE.EXTRACT_TIME GNAT.CALENDAR.TIME_IO.PUT_TIME GNAT.CALENDAR.TIME_IO.PUT_TIME GNAT.CALENDAR.TIME_IO
Analyzing compilation unit
Performing interprocedural optimizations
 <*free_lang_data> <visibility> <early_local_cleanups> <whole-program> <ipa-profile> <inline> <pure-const> <static-var>Assembling functions:
 GNAT.CALENDAR.TIME_IO.PUT_TIME GNAT.CALENDAR.TIME_IO.HOUR_12 GNAT.CALENDAR.TIME_IO.MONTH_NAME_TO_NUMBER GNAT.CALENDAR.TIME_IO.VALUE.EXTRACT_TIME GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B96B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B107B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B118B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B129B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B140B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B151B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B162B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B173B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B184B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B195B GNAT.CALENDAR.TIME_IO.IMAGE.B_2.B224B GNAT.CALENDAR.TIME_IO.IMAGE.B_2.B239B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B250B GNAT.CALENDAR.TIME_IO.IMAGE.B_3.B282B GNAT.CALENDAR.TIME_IO.IMAGE.B_3.B295B GNAT.CALENDAR.TIME_IO.IMAGE.B_3.B308B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B319B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B342B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B359B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B376B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B392B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B408B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B420B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B432B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B444B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B455B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B478B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B489B GNAT.CALENDAR.TIME_IO.IMAGE.B_4.B500B GNAT.CALENDAR.TIME_IO.IMAGE.B_5.B511B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B522B GNAT.CALENDAR.TIME_IO.IMAGE.B_6.B534B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B545B GNAT.CALENDAR.TIME_IO.IMAGE.L_1.B558B GNAT.CALENDAR.TIME_IO.IMAGE GNAT.CALENDAR.TIME_IO.AM_PM GNAT.CALENDAR.TIME_IO.IMAGE GNAT.CALENDAR.TIME_IO.IMAGE GNAT.CALENDAR.TIME_IO.IMAGE GNAT.CALENDAR.TIME_IO.IMAGE
raised STORAGE_ERROR : stack overflow (or erroneous memory access)
Comment 5 Eric Botcazou 2011-05-21 19:05:36 UTC
> On x86_linux, I can not reproduce the problem:

Try to increase your ulimit settings.
Comment 6 davidxl 2011-05-21 23:30:34 UTC
Created attachment 24323 [details]
fix
Comment 7 davidxl 2011-05-22 00:01:13 UTC
(In reply to comment #6)
> Created attachment 24323 [details]
> fix

Please verify.

Davdi
Comment 8 Eric Botcazou 2011-05-22 07:09:01 UTC
> Please verify.

Works for me, thanks!
Comment 9 Mikael Pettersson 2011-06-06 10:21:19 UTC
Wasn't this fixed in r174077?  If so, can this be closed now?
Comment 10 Eric Botcazou 2011-06-06 10:26:49 UTC
Yep.