[flang] Fix error in characteristics check at procedure pointer assignment
authorEmil Kieri <j.emil.kieri@gmail.com>
Tue, 9 Nov 2021 15:10:42 +0000 (16:10 +0100)
committerEmil Kieri <j.emil.kieri@gmail.com>
Tue, 9 Nov 2021 17:46:54 +0000 (18:46 +0100)
commit384b4e0d332ec6fc4f9fc279d12aadc162eaf3a0
tree2da79cc9e3462f80c6e42cc24cc46c6420038334
parent2a88d00cf250534f31c706bc832f0f6386c28ef3
[flang] Fix error in characteristics check at procedure pointer assignment

If the procedure pointer has an explicit interface, its characteristics must
equal the characteristics of its target, except that the target may be pure or
elemental also when the pointer is not (cf. F2018 10.2.2.4(3)). In the semantics
check for assignment of procedure pointers, the attributes of the procedures
were not checked correctly due to a typo. This caused some illegal
pointer-target-combinations to pass without raising an error. Fix this, and
expand the test case to improve the coverage of procedure pointer assignment
checks.

Reviewed By: PeteSteinfeld

Differential Revision: https://reviews.llvm.org/D113368
flang/lib/Evaluate/tools.cpp
flang/test/Semantics/assign03.f90