------- Comment #1 from rguenth at gcc dot gnu dot org 2008-05-15 10:12 ------- Confirmed. The problem is how we compute MTAG_GLOBAL and call clobbering. We assert that "unmodifiable" variables are not call clobbered and "unmodifiable" is if MTAG_GLOBAL && TREE_READONLY. Now we transition between unmodifiable and not unmodifiable in compute_tag_properties and are not careful making an already call clobbered variable unmodifiable.
The simplest fix is to remove the offending assert (we only believe we have extra call clobbering - but I think this is not true in general). Note I cannot reproduce this on the trunk but on the 4.3 branch only. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|tree-optimization |middle-end Ever Confirmed|0 |1 Keywords| |alias, ice-on-valid-code Known to fail| |4.3.1 Last reconfirmed|0000-00-00 00:00:00 |2008-05-15 10:12:50 date| | Summary|-ftree-parallelize-loops=4, |-ftree-parallelize-loops=4, |vectorizer enabled, ICE |vectorizer enabled, ICE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36244