------- Comment #6 from rguenth at gcc dot gnu dot org 2009-09-03 11:40 ------- This looks like your restrict changes get in the way. We have
y_13 = (real(kind=8) & restrict) &y; .. *y_13 = D.1416_35; ... D.1412_51 = y; so one access via the plain y gets re-introduced by forwprop somehow and somehow we conclude y_13 cannot point to it. Hmmm. My bet is on the TBAA "hack" by micha here ... the local variables have a different alias-set than the pointed-to type in the parameter. Micha - that's quite unfortunate, and I think the only way out is to not do this TBAA trick if the address of such variable is taken - which also means "always" for global vars. Ugh. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu dot | |org, matz at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41212