------- Additional Comments From rguenth at tat dot physik dot uni-tuebingen dot de 2005-01-26 08:47 ------- Subject: Re: Aliasing says stores to local memory do alias
> D.2540 = (struct Loc<1> *) &dX.D.2210.D.2166.domain_m.buffer; > That confuses the aliasing mechanism > buffer is of type int* but you are casting it to Loc<1> *. Telling it the truth by having an array of Loc<1> instead doesn't help. I suppose you're talking about not decomposing Loc<2> into two Loc<1> as intermediate step? Well, yes, that's a design decision I cannot change. It looks superfluous for Loc<>, but makes sense for the more complex domain objects like Interval and Range (but that's a different story). But in principle a compiler could determine that the two objects cannot alias, even which this interwinded type structure? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19626