| ! { dg-do compile } |
| ! { dg-options "-fdec-structure" } |
| ! |
| ! Verify that the comparisons in gfc_compare_derived_types can correctly |
| ! match nested anonymous subtypes. |
| ! |
| |
| subroutine sub0 (u) |
| structure /t/ |
| structure sub |
| integer i |
| end structure |
| endstructure |
| record /t/ u |
| u.sub.i = 0 |
| end subroutine sub0 |
| |
| subroutine sub1 () |
| structure /t/ |
| structure sub |
| integer i |
| end structure |
| endstructure |
| record /t/ u |
| |
| interface |
| subroutine sub0 (u) ! regression: Interface mismatch.*Type mismatch |
| structure /t/ |
| structure sub |
| integer i |
| end structure |
| endstructure |
| record /t/ u |
| end subroutine |
| end interface |
| |
| call sub0(u) ! regression: Type mismatch in argument |
| end subroutine |
| |
| subroutine sub2(u) |
| structure /tu/ |
| union |
| map |
| integer i |
| end map |
| map |
| real r |
| end map |
| end union |
| end structure |
| record /tu/ u |
| u.r = 1.0 |
| end subroutine |
| |
| implicit none |
| |
| structure /t/ |
| structure sub |
| integer i |
| end structure |
| endstructure |
| |
| structure /tu/ |
| union |
| map |
| integer i |
| end map |
| map |
| real r |
| end map |
| end union |
| end structure |
| |
| record /t/ u |
| record /tu/ u2 |
| |
| call sub0(u) ! regression: Type mismatch in argument |
| call sub1() |
| call sub2(u2) |
| |
| end |