| ! { dg-do compile } |
| ! Tests the patch for PRs 25084, 20852, 25085 and 25086, all of |
| ! which involve assumed character length functions. |
| ! This test checks the things that should not emit errors. |
| ! |
| ! Contributed by Paul Thomas <pault@gcc.gnu.org> |
| ! |
| function is_OK (ch) ! { dg-warning "Obsolescent feature" } |
| character(*) is_OK, ch ! OK in an external function |
| is_OK = ch |
| end function is_OK |
| |
| ! The warning occurs twice for the next line; for 'more_OK' and for 'fcn'; |
| function more_OK (ch, fcn) ! { dg-warning "Obsolescent feature" } |
| character(*) more_OK, ch |
| character (*), external :: fcn ! OK as a dummy argument |
| more_OK = fcn (ch) |
| end function more_OK |
| |
| character(4) :: answer |
| character(4), external :: is_OK, more_OK |
| |
| answer = is_OK ("isOK") ! LEN defined in calling scope |
| print *, answer |
| |
| answer = more_OK ("okay", is_OK) ! Actual arg has defined LEN |
| print *, answer |
| |
| answer = also_OK ("OKOK") |
| print *, answer |
| |
| contains |
| function also_OK (ch) |
| character(4) also_OK |
| character(*) ch |
| also_OK = is_OK (ch) ! LEN obtained by host association |
| end function also_OK |
| END |
| |