! { 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