| ! RUN: %python %S/test_errors.py %s %flang_fc1 | |
| ! C1003 - can't parenthesize function call returning procedure pointer | |
| module m1 | |
| type :: dt | |
| procedure(frpp), pointer, nopass :: pp | |
| end type dt | |
| contains | |
| subroutine boring | |
| end subroutine boring | |
| function frpp | |
| procedure(boring), pointer :: frpp | |
| frpp => boring | |
| end function frpp | |
| subroutine tests | |
| procedure(boring), pointer :: mypp | |
| type(dt) :: dtinst | |
| mypp => boring ! legal | |
| mypp => (boring) ! legal, not a function reference | |
| !ERROR: A function reference that returns a procedure pointer may not be parenthesized | |
| mypp => (frpp()) ! C1003 | |
| mypp => frpp() ! legal, not parenthesized | |
| dtinst%pp => frpp | |
| mypp => dtinst%pp() ! legal | |
| !ERROR: A function reference that returns a procedure pointer may not be parenthesized | |
| mypp => (dtinst%pp()) | |
| end subroutine tests | |
| end module m1 |