| ! RUN: %python %S/test_errors.py %s %flang_fc1 |
| ! C1121 -- any procedure referenced in a concurrent header must be pure |
| ! Also, check that the step expressions are not zero. This is prohibited by |
| ! Section 11.1.7.4.1, paragraph 1. |
| SUBROUTINE do_concurrent_c1121(i,n) |
| !ERROR: DO CONCURRENT mask expression may not reference impure procedure 'random' |
| DO CONCURRENT (i = 1:n, random() < 3) |
| IMPURE FUNCTION random() RESULT(i) |
| END SUBROUTINE do_concurrent_c1121 |
| INTEGER, PARAMETER :: constInt = 0 |
| ! Warn on this one for backwards compatibility |
| ! Warn on this one for backwards compatibility |
| ! Error, no compatibility requirement for DO CONCURRENT |
| !ERROR: DO CONCURRENT step expression may not be zero |
| DO CONCURRENT (I = 1 : 10 : 0) |
| ! Error, this time with an integer constant |
| !ERROR: DO CONCURRENT step expression may not be zero |
| DO CONCURRENT (I = 1 : 10 : constInt) |