[fortran,patch] Fix PR 25252, error-recovery and ice-on-invalid

Jerry DeLisle jvdelisle@verizon.net
Sat Nov 17 18:07:00 GMT 2007


FX Coudert wrote:
> Attached patch fixes PR 25252, which is in fact two error-recovery and 
> ice-on-invalid bugs in gfc_match_modproc(), the function that matches 
> module procedure statements. The first part is to move the check for 
> syntax error earlier in the loop. The second part is the recovery part: 
> when we have a syntax error after having succesfully emitted code for 
> some symbols (like "module procedure foo, bar, not => allowed"), we used 
> to no remove the already created symbols (foo and bar) from the 
> interface, even though the symbols will be cleaned up in 
> reject_statement(). Thus, the interface's sym->interface.generic (if 
> it's a generic interface, e.g.) was left with pointers to cleaned up 
> memory. I counter this by resetting the interface to its previous state 
> (creating two auxiliary functions in interface.c to help), and freeing 
> the allocated gfc_interface's.
> 
> Bootstrapped and regtested on x86_64-linux, OK to commit?
> 
> FX
> 
> 
> 
> :ADDPATCH fortran:
This OK, very clean.

Jerry



More information about the Fortran mailing list