xref: /llvm-project/flang/test/Semantics/typeinfo05.f90 (revision 996c0fb3a2c28047d19b6a151f6f357c5022c137)
1!RUN: bbc --dump-symbols %s | FileCheck %s
2!RUN: %flang_fc1 -fdebug-dump-symbols %s | FileCheck %s
3! Ensure that cycles via POINTERs do not instantiate incomplete derived
4! types that would lead to types whose sizeinbytes=0
5program main
6  implicit none
7  type t1
8    type(t2), pointer :: b
9  end type t1
10!CHECK: .dt.t1, SAVE, TARGET (CompilerCreated, ReadOnly): ObjectEntity type: TYPE(derivedtype) init:derivedtype(binding=NULL(),name=.n.t1,sizeinbytes=40_8,uninstantiated=NULL(),kindparameter=NULL(),lenparameterkind=NULL(),component=.c.t1,procptr=NULL(),special=NULL(),specialbitset=0_4,hasparent=0_1,noinitializationneeded=0_1,nodestructionneeded=1_1,nofinalizationneeded=1_1)
11  type :: t2
12    type(t1) :: a
13  end type t2
14! CHECK: .dt.t2, SAVE, TARGET (CompilerCreated, ReadOnly): ObjectEntity type: TYPE(derivedtype) init:derivedtype(binding=NULL(),name=.n.t2,sizeinbytes=40_8,uninstantiated=NULL(),kindparameter=NULL(),lenparameterkind=NULL(),component=.c.t2,procptr=NULL(),special=NULL(),specialbitset=0_4,hasparent=0_1,noinitializationneeded=0_1,nodestructionneeded=1_1,nofinalizationneeded=1_1)
15end program main
16
17