Issue 125928
Summary [Flang] Incorrect diagnostic on `NULL(allocatable)` as actual argument for generic resolution
Labels flang:frontend
Assignees
Reporter DanielCChen
    Consider the following code
```
module m
    type Base
        integer i
    end type

    type, extends(Base) :: Child
        integer j
    end type

 interface printMe
        subroutine printBase(b)
            import Base
            type(Base), pointer :: b
        end subroutine

 subroutine printChild(c)
            import Child
            type(Child), allocatable :: c
        end subroutine
    end interface printMe
end module

program generic002
use m
    type(Base), pointer :: b1
 type(Child), allocatable :: c1

    allocate(b1, SOURCE=Base(10))
 allocate(c1, SOURCE=Child(8, 9))

    call printMe(null(b1))
    call printMe(null(c1))
end

```

Flang currently issues an error as:
```
error: Semantic errors in t.f
./t.f:32:5: error: No specific subroutine of generic 'printme' matches the actual arguments
      call printMe(null(c1))
      ^^^^^^^^^^^^^^^^^^^^^^
```

The code seems valid as `null(c1)` should have a allocatable result of the same type as `c1`.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to