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

--- Comment #6 from Mikael Morin <mikael at gcc dot gnu.org> ---
(In reply to janus from comment #5)
> However, it also seems to introduce another ordering issue: In particular
> the bounds of 'b' are now set as
> 
>         b.dim[1].lbound = 1;
>         b.dim[1].ubound = (D.2352 - D.2351) + 1;
> 
> before those temps are actually set via
> 
>       D.2351 = a.dim[0].lbound;
>       D.2352 = a.dim[0].ubound;

Hmm, no those are correctly ordered, but I see what you mean; and it's actually
diagnosed by the compiler when warnings and optimizations are enabled:
Namely this happens:

      D.2339 = b.dim[1].lbound;
      D.2340 = b.dim[1].ubound;

before b has been initialized.

So the reallocation code has to also happen before b's bounds are evaluated.
Even more tricky... :-(

Reply via email to