| ! More complicated PROGRAM to check that outer GOTOs |
| ! are retargetted a CONTINUE statement that is inserted |
| ! but END IF label is not removed since inner GOTO |
| ! targets it. |
| |
| PROGRAM branch_from_inside_and_outside_if_block_no_do_loop |
| INTEGER :: sum, i |
| sum = 0 |
| IF (MOD(i,2).eq.0) THEN |
| sum = sum + i |
| IF (sum.ge.100) THEN |
| GOTO 30 |
| ELSE |
| sum = sum + sum |
| GOTO 60 |
| 30 END IF |
| 10 END IF |
| |
| PRINT *, 'sum:', sum |
| IF (sum.ge.100) THEN |
| PRINT *, 'sum:', sum |
| ELSE |
| sum = sum + sum |
| GOTO 50 |
| 50 END IF !<<<<< 25, 1, 25, 9, pass |
| 60 CONTINUE |
| END PROGRAM branch_from_inside_and_outside_if_block_no_do_loop |