Issue 83836
Summary [flang] renamed specific shadowed by generic cause error when reading module files
Labels bug, flang:semantics
Assignees
Reporter jeanPerier
    Reproducer:

modules.f90 :
```
module mod0
    interface proc
      module procedure proc
    end interface
contains
  subroutine proc(n)
    print *, n
  end subroutine
end module
module mod1
  use mod0,renamed_proc=>proc
  procedure(renamed_proc),pointer :: p
end module
```

main.f90 :

```
  use mod1
  p => renamed_proc
  call p(343)
end program
```

```
flang-new -c modules.f90
flang-new -c main.f90
```

Bogus error:
```
error: Semantic errors in main.f90
./main.f90:2:3: error: 'proc' is not a procedure
    p => renamed_proc
 ^^^^^^^^^^^^^^^^^
./main.f90:2:3: error: In assignment to object pointer 'p', the target 'proc' is a procedure designator
    p => renamed_proc
 ^^^^^^^^^^^^^^^^^
./mod1.mod:5:26: Declaration of 'p'
 procedure(proc),pointer::p
                           ^
./main.f90:3:3: error: 'proc' is not a procedure
    call p(343)
 ^^^^^^^^^^^
./mod1.mod:5:11: error: 'proc' must be an abstract interface or a procedure with an explicit interface
 procedure(proc),pointer::p
```


This test is derived from discussions in https://github.com/llvm/llvm-project/pull/81544 and was not fixed by https://github.com/llvm/llvm-project/pull/82837.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to