23 lines · plain
1! Test "nofinalizationneeded" is set to false for derived type2! containing polymorphic allocatable ultimate components.3!RUN: %flang_fc1 -fdebug-dump-symbols %s | FileCheck %s4 5 type :: t_base6 end type7 type :: t_container_not_polymorphic8 type(t_base), allocatable :: comp9 end type10 type :: t_container11 class(t_base), allocatable :: comp12 end type13 type, extends(t_container) :: t_container_extension14 end type15 type :: t_container_wrapper16 type(t_container_extension) :: wrapper17 end type18end19! CHECK: .dt.t_container, SAVE, TARGET (CompilerCreated, ReadOnly): {{.*}}noinitializationneeded=0_1,nodestructionneeded=0_1,nofinalizationneeded=0_1,nodefinedassignment=0_1)20! CHECK: .dt.t_container_extension, SAVE, TARGET (CompilerCreated, ReadOnly): {{.*}}noinitializationneeded=0_1,nodestructionneeded=0_1,nofinalizationneeded=0_1,nodefinedassignment=0_1)21! CHECK: .dt.t_container_not_polymorphic, SAVE, TARGET (CompilerCreated, ReadOnly): {{.*}}noinitializationneeded=0_1,nodestructionneeded=0_1,nofinalizationneeded=1_1,nodefinedassignment=1_1)22! CHECK: .dt.t_container_wrapper, SAVE, TARGET (CompilerCreated, ReadOnly): {{.*}}noinitializationneeded=0_1,nodestructionneeded=0_1,nofinalizationneeded=0_1,nodefinedassignment=0_1)23