Use of the entry statement can cause different variables with different,
unconvertable types to share the same storage. A hlfir.assign for these
types cannot convert the rhs, so instead the lhs must be converted
(which is how assignments are lowered in FIR).
Example code this fixes:
complex function f1() logical e1 f1 = complex(1.0, 2.0) entry e1() e1 = .false. end function