blob: 70faabfc0f5ff2cbbabe4313083b44d56d8aa50f [file] [log] [blame]
! { dg-do compile }
! { dg-options "-fdec-structure -fmax-errors=0" }
!
! Comprehensive compile tests for what structures CAN'T do.
!
! Old-style (clist) initialization
integer,parameter :: as = 3
structure /t1/ ! { dg-error "Type definition.*T1" }
integer*1 a /300_2/ ! { dg-error "Arithmetic overflow" }
integer b // ! { dg-error "Empty old style initializer list" }
integer c /2*3/ ! { dg-error "Repeat spec invalid in scalar" }
integer d /1,2,3/ ! { dg-error "End of scalar initializer expected" }
integer e /"HI"/ ! { dg-error "Cannot convert" }
integer f(as) /4*9/ ! { dg-error "Too many elements" }
integer g(3) /1,3/ ! { dg-error "Not enough elements" }
integer h(3) /1,3,5,7/ ! { dg-error "Too many elements" }
integer i(3) /2*1/ ! { dg-error "Not enough elements" }
integer j(3) /10*1/ ! { dg-error "Too many elements" }
integer k(3) /2.5*3/ ! { dg-error "Repeat spec must be an integer" }
integer l(2) /2*/ ! { dg-error "Expected data constant" }
integer m(1) / ! { dg-error "Syntax error in old style" }
integer n(2) /1 ! { dg-error "Syntax error in old style" }
integer o(2) /1, ! { dg-error "Syntax error in old style" }
integer p(1) /x/ ! { dg-error "must be a PARAMETER" }
end structure
structure ! { dg-error "Structure name expected" }
structure / ! { dg-error "Structure name expected" }
structure // ! { dg-error "Structure name expected" }
structure /.or./ ! { dg-error "Structure name expected" }
structure /integer/ ! { dg-error "Structure name.*cannot be the same" }
structure /foo/ bar ! { dg-error "Junk after" }
structure /t1/ ! { dg-error "Type definition.*T1" }
record ! { dg-error "Structure name expected" }
record bar ! { dg-error "Structure name expected" }
record / bar ! { dg-error "Structure name expected" }
record // bar ! { dg-error "Structure name expected" }
record foo/ bar ! { dg-error "Structure name expected" }
record /foo bar ! { dg-error "Structure name expected" }
record /foo/ bar ! { dg-error "used before it is defined" }
record /t1/ ! { dg-error "Invalid character in name" }
structure /t2/
ENTRY here ! { dg-error "ENTRY statement.*cannot appear" }
integer a ! { dg-error "Component.*already declared" }
integer a ! { dg-error "Component.*already declared" }
structure $z ! { dg-error "Invalid character in name" }
structure // ! { dg-error "Invalid character in name" }
structure // x ! { dg-error "Invalid character in name" }
structure /t3/ ! { dg-error "Invalid character in name" }
structure /t3/ x,$y ! { dg-error "Invalid character in name" }
structure /t4/ y ! { dg-error "Type definition.*T4" }
integer i, j, k
end structure
structure /t4/ z ! { dg-error "Type definition.*T4" }
end structure
end