This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/31947] [4.2 Regression] ICE in calc_dfs_tree, at dominance.c:374
- From: "rakdver at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Oct 2007 16:07:51 -0000
- Subject: [Bug middle-end/31947] [4.2 Regression] ICE in calc_dfs_tree, at dominance.c:374
- References: <bug-31947-12387@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #7 from rakdver at gcc dot gnu dot org 2007-10-17 16:07 -------
(In reply to comment #0)
> I'm getting the following ICE with gcc 4.2.0 RC3. It compiles fine
> with gcc 4.1 and 4.3 20070515.
>
> (sid)23889:tbm@em64t: ~] /usr/lib/gcc-snapshot/bin/g++ -c -O2
> freehdl-vital_timing.cc
> freehdl-vital_timing.cc: In function 'array_type<long int> delay(const
> array_type<long int>&)':
> freehdl-vital_timing.cc:38: internal compiler error: in calc_dfs_tree, at
> dominance.c:374
> Please submit a full bug report,
> with preprocessed source if appropriate.
> (sid)23890:tbm@em64t: ~] g++-4.1 -c -O2 freehdl-vital_timing.cc
> (sid)23891:tbm@em64t: ~]
This ICE happens when there are unreachable blocks in cfg when
calculate_dominance_info is called. Adding delete_unreachable_blocks
before calculate_dominance_info in tree-vrp.c:identify_jump_threads fixes
this ICE (I need to check whether this does not cause other problems, though).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31947