! { dg-do run } ! { dg-options "-fdec-structure" } ! ! Test nested UNIONs. ! subroutine aborts (s) character(*), intent(in) :: s print *, s STOP 1 end subroutine ! Nested unions structure /s4/ union ! U0 ! rax map character(16) rx end map map character(8) rh ! rah union ! U1 map character(8) rl ! ral end map map character(8) ex ! eax end map map character(4) eh ! eah union ! U2 map character(4) el ! eal end map map character(4) x ! ax end map map character(2) h ! ah character(2) l ! al end map end union end map end union end map end union end structure record /s4/ r4 ! Nested unions r4.rx = 'AAAAAAAA.BBB.C.D' if ( r4.rx .ne. 'AAAAAAAA.BBB.C.D' ) call aborts ("rax") if ( r4.rh .ne. 'AAAAAAAA' ) call aborts ("rah") if ( r4.rl .ne. '.BBB.C.D' ) call aborts ("ral") if ( r4.ex .ne. '.BBB.C.D' ) call aborts ("eax") if ( r4.eh .ne. '.BBB' ) call aborts ("eah") if ( r4.el .ne. '.C.D' ) call aborts ("eal") if ( r4.x .ne. '.C.D' ) call aborts ("ax") if ( r4.h .ne. '.C' ) call aborts ("ah") if ( r4.l .ne. '.D' ) call aborts ("al") end