| ! RUN: %python %S/test_errors.py %s %flang_fc1 -Werror |
| ! Catch discrepancies between implicit result types and a global definition |
| |
| complex function zbefore() |
| zbefore = (0.,0.) |
| end |
| |
| program main |
| !ERROR: Implicit declaration of function 'zbefore' has a different result type than in previous declaration |
| print *, zbefore() |
| print *, zafter() |
| print *, zafter2() |
| print *, zafter3() |
| end |
| |
| subroutine another |
| implicit integer(z) |
| !ERROR: Implicit declaration of function 'zafter' has a different result type than in previous declaration |
| print *, zafter() |
| end |
| |
| !ERROR: Function 'zafter' has a result type that differs from the implicit type it obtained in a previous reference |
| complex function zafter() |
| zafter = (0.,0.) |
| end |
| |
| function zafter2() |
| !ERROR: Function 'zafter2' has a result type that differs from the implicit type it obtained in a previous reference |
| complex zafter2 |
| zafter2 = (0.,0.) |
| end |
| |
| function zafter3() result(res) |
| !ERROR: Function 'zafter3' has a result type that differs from the implicit type it obtained in a previous reference |
| complex res |
| res = (0.,0.) |
| end |