| ! RUN: %flang_fc1 -fdebug-dump-symbols %s 2>&1 | FileCheck %s | |
| ! F'2023 19.4 p5: a data-implied-do index variable takes the type of its | |
| ! name in the scoping unit -- including its kind, and even when the | |
| ! declaration follows the DATA statement. | |
| ! CHECK: Subprogram scope: s | |
| ! CHECK: i size=8 offset={{[0-9]+}}: ObjectEntity type: INTEGER(8) | |
| ! CHECK: ImpliedDos scope: | |
| ! CHECK: i size=8 offset=0: ObjectEntity type: INTEGER(8) | |
| subroutine s | |
| logical, dimension(4), save :: util | |
| data (util(i),i=1,4)/4*.true./ | |
| integer(8) :: i | |
| end subroutine | |
| ! A declaration in the innermost scoping unit takes precedence over a | |
| ! host-associated symbol of the same name, even when it follows the DATA | |
| ! statement. | |
| ! CHECK: Subprogram scope: t | |
| ! CHECK: i size=4 offset={{[0-9]+}}: ObjectEntity type: INTEGER(4) | |
| ! CHECK: Subprogram scope: inner | |
| ! CHECK: i size=8 offset={{[0-9]+}}: ObjectEntity type: INTEGER(8) | |
| ! CHECK: ImpliedDos scope: | |
| ! CHECK: i size=8 offset=0: ObjectEntity type: INTEGER(8) | |
| subroutine t | |
| integer :: i | |
| i = 0 | |
| contains | |
| subroutine inner | |
| implicit none | |
| logical, dimension(4), save :: util | |
| data (util(i),i=1,4)/4*.true./ | |
| integer(8) :: i | |
| end subroutine | |
| end subroutine |