> Committed to the 4.6 branch as r179864: ... and to 4.5 as r179923.
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 >> >