------- Comment #3 from janus at gcc dot gnu dot org 2010-02-25 09:13 ------- Regarding BLOCK, it seems there is an additional problem: Assignments inside a BLOCK are not checked at all, as the following case shows ...
implicit none real :: glob contains pure subroutine swap implicit none real :: r1 r1 = 42. block real :: r2 r2 = 43. glob = 0. end block end subroutine end The assignment to 'glob' is clearly invalid, but is not being caught. 'gfc_impure_variable' is only called for 'r1', the other two are left unchecked. Seems like statements inside a BLOCK are not being resolved at all?!? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43169