llvm / llvm-project / flang / eda5f3e1c500d89c4a053b151d7073412c3d02f2 / . / test / Semantics / resolve21.f90

! RUN: %S/test_errors.sh %s %t %flang_fc1 | |

subroutine s1 | |

type :: t | |

integer :: i | |

integer :: s1 | |

integer :: t | |

end type | |

!ERROR: 't' is already declared in this scoping unit | |

integer :: t | |

integer :: i, j | |

type(t) :: x | |

!ERROR: Derived type 't2' not found | |

type(t2) :: y | |

external :: v | |

type(t) :: v, w | |

external :: w | |

!ERROR: 'z' is not an object of derived type; it is implicitly typed | |

i = z%i | |

!ERROR: 's1' is an invalid base for a component reference | |

i = s1%i | |

!ERROR: 'j' is not an object of derived type | |

i = j%i | |

!ERROR: Component 'j' not found in derived type 't' | |

i = x%j | |

!ERROR: 'v' is an invalid base for a component reference | |

i = v%i | |

!ERROR: 'w' is an invalid base for a component reference | |

i = w%i | |

i = x%i !OK | |

end subroutine | |

subroutine s2 | |

type :: t1 | |

integer :: i | |

end type | |

type :: t2 | |

type(t1) :: x | |

end type | |

type(t2) :: y | |

integer :: i | |

!ERROR: Component 'j' not found in derived type 't1' | |

k = y%x%j | |

k = y%x%i !OK | |

end subroutine |