[Bug fortran/46678] [4.6 Regression] Wrong code with strings

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Nov 27 10:21:00 GMT 2010


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

--- Comment #4 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-27 09:45:41 UTC ---
> If one looks at the original dump, the only difference is nesting:
>
> the working version has:
> 
>   {
>      // setup .string and other initialization
>   }
>   [...]
> }
> 
> 
> the failing version uses:
> 
>   {
>     // setup .string and other initialization
>     [...]
>   }
> }

I got that swapped around. Correct is: In working version the .string is set in
a block which stretches the whole function / try_block while in the failing
version it is in a separate block. That indicates an extra/too early
finish_block() rather than one too much.

While it makes a bit more sense, I admittedly still fail to understand why
  int .string
  {
     .string = 4
  }
  // use .string
fails whereas the following works:
  int .string
  {
    .string = 4
    // use .string
  }



More information about the Gcc-bugs mailing list