[flang] Handle dispatch on nopass procedure from array element
authorValentin Clement <clementval@gmail.com>
Wed, 2 Nov 2022 15:52:05 +0000 (16:52 +0100)
committerValentin Clement <clementval@gmail.com>
Wed, 2 Nov 2022 15:52:25 +0000 (16:52 +0100)
commit943b4c90a9644dbceea231a86d59520dd3c2a6db
tree5142dc7accb03da7591f9a72224b5c12e6aeffe7
parente57ab8fe91f06e71d3de2df07e6c7efd2f0c6078
[flang] Handle dispatch on nopass procedure from array element

When a fir.dispatch is done with a NOPASS type-bound
procedure, the object in fir.dispatch is just used to gather the vtable.
Therefore, no transformation is done on it and the original entity
is used. The current code generation didn't expect the entity to be an array.
This patch update the code generation to be able to retrieve the vtable
accordingly.

Reviewed By: PeteSteinfeld

Differential Revision: https://reviews.llvm.org/D137255
flang/lib/Optimizer/CodeGen/CodeGen.cpp
flang/test/Fir/dispatch.f90