------- Comment #3 from rguenth at gcc dot gnu dot org 2008-03-04 20:35 ------- Actually alias_sets_conflict_p is the cuplrit, as we have in the alias subset of struct YY alias set zero (entered for the char member, accesses conflict with accesses through char *):
/* See if the first alias set is a subset of the second. */ ase = get_alias_set_entry (set1); if (ase != 0 && (ase->has_zero_child || splay_tree_lookup (ase->children, (splay_tree_key) set2))) return 1; which IMHO should do if (ase != 0 && ((ase->has_zero_child && set2 == 0) || splay_tree_lookup (ase->children, (splay_tree_key) set2)) return 1; where then both cases are optimized? -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dnovillo at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27799