Committed to the 4.6 branch as r179864:

http://gcc.gnu.org/viewcvs?view=revision&revision=179723

Cheers,
Janus



2011/10/9 Janus Weil <ja...@gcc.gnu.org>:
> Hi all,
>
> I have just committed as obvious a patch for an ICE-on-valid problem
> with PROCEDURE statements:
>
> http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179723
>
> The problem was the following: When setting up an external procedure
> or procedure pointer (declared via a PROCEDURE statement), we copy the
> expressions for the array bounds and string length from the interface
> symbol given in the PROCEDURE declaration (cf.
> 'resolve_procedure_interface'). If those expressions depend on the
> actual args of the interface, we have to replace those args by the
> args of the new procedure symbol that we're setting up. This is what
> 'gfc_expr_replace_symbols' / 'replace_symbol' does. Unfortunately we
> failed to check whether the symbol we try to replace is actually a
> dummy!
>
> Contrary to Andrew's initial assumption, I think the test case is
> valid. I could neither find a compiler which rejects it, nor a
> restriction in the standard which makes it invalid. The relevant part
> of F08 is probably chapter 7.1.11 ("Specification expression"). This
> states that a specification expression can contain variables, which
> are made accessible via use association.
>
> I'm planning to apply the patch to the 4.6, 4.5 and 4.4 branches soon.
>
> Cheers,
> Janus
>

Reply via email to