[flang] Call finalization on empty type (#66010)
commit973ca4e4a2d11763fa6f8016d7f14ddd20006b7b
authorValentin Clement (バレンタイン クレメン) <clementval@gmail.com>
Mon, 11 Sep 2023 21:34:21 +0000 (11 14:34 -0700)
committerGitHub <noreply@github.com>
Mon, 11 Sep 2023 21:34:21 +0000 (11 14:34 -0700)
treeb5a3b60bea4c4232761bf295b5bc7c2e324c8027
parente6e69f3bd4b848da8c34e4418812c25fc8749950
[flang] Call finalization on empty type (#66010)

According to 7.5.6.3 point 3, finalization occurs when

> A nonpointer, nonallocatable object that is not a dummy argument or
function result is finalized immediately before it would become
undefined due to execution of a RETURN or END statement (19.6.6, item
(3)).

We were not calling the finalization on empty derived-type. There is no
such restriction so this patch updates the code so the finalization is
called for empty type as well.
flang/lib/Lower/ConvertVariable.cpp
flang/test/Lower/derived-type-finalization.f90