http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43829

--- Comment #33 from Dominique d'Humieres <dominiq at lps dot ens.fr> 
2011-03-01 15:41:36 UTC ---
(In reply to comment #32)
> Created attachment 23268 [details]
> More up-to-date patch

Although this patch is probably not suitable for stage 4, I have it in my tree
for some time without any problem. It would be interesting to know if it still
improves 465.tonto. My only remark is about the test in comment #31 for which
the dg-warning in 

  if (any(1+eid(sum(a,2))+ay+neid2 &
        (sum(a,2) &              ! { dg-warning "Creating array temporary" }
        )+1  /= 3*ay+2))        call abort

should be moved to the line above:

Warning: Creating array temporary at (1)
pr43829_7.f90:116.34:

  if (any(1+eid(sum(a,2))+ay+neid2 &
                                  1
Warning: Creating array temporary at (1)

and the block

  if (any(sum(                &
        a(sum(onesx(:,:),1),  &
          sum(onesy(:,:),1),  &
          sum(onesz(:,:),1)), &
        1) /= ax)) call abort

that generates

pr43829_7.f90:94.10:

        a(sum(onesx(:,:),1),  &
          1
Warning: Creating array temporary at (1)
pr43829_7.f90:94.28:

        a(sum(onesx(:,:),1),  &
                            1
Warning: Creating array temporary at (1)
pr43829_7.f90:95.28:

          sum(onesy(:,:),1),  &
                            1
Warning: Creating array temporary at (1)

Also "reshape((/ (i*i,i=1,size(a)) /), shape(a)), &" generates a warning:

pr43829_7.f90:82.8:

        reshape((/ (i*i,i=1,size(a)) /), shape(a)), &
        1
Warning: Creating array temporary at (1)

Reply via email to