2016-05-07 Fritz Reese <fritzoreese@gmail.com>
[official-gcc.git] / gcc / testsuite / gfortran.dg / dec_structure_8.f90
blob160b92a8b96996984d446a2a83adf45ff62c7dfe
1 ! { dg-do compile }
2 ! { dg-options "-fdec-structure -fmax-errors=0" }
4 ! Comprehensive compile tests for what structures CAN'T do.
7 ! Old-style (clist) initialization
8 integer,parameter :: as = 3
9 structure /t1/
10 integer*1 a /300_2/ ! { dg-error "Arithmetic overflow" }
11 integer b // ! { dg-error "Empty old style initializer list" }
12 integer c /2*3/ ! { dg-error "Repeat spec invalid in scalar" }
13 integer d /1,2,3/ ! { dg-error "End of scalar initializer expected" }
14 integer e /"HI"/ ! { dg-error "Can't convert" }
15 integer f(as) /4*9/ ! { dg-error "Too many elements" }
16 integer g(3) /1,3/ ! { dg-error "Not enough elements" }
17 integer h(3) /1,3,5,7/ ! { dg-error "Too many elements" }
18 integer i(3) /2*1/ ! { dg-error "Not enough elements" }
19 integer j(3) /10*1/ ! { dg-error "Too many elements" }
20 integer k(3) /2.5*3/ ! { dg-error "Repeat spec must be an integer" }
21 integer l(2) /2*/ ! { dg-error "Expected data constant" }
22 integer m(1) / ! { dg-error "Syntax error in old style" }
23 integer n(2) /1 ! { dg-error "Syntax error in old style" }
24 integer o(2) /1, ! { dg-error "Syntax error in old style" }
25 integer p(1) /x/ ! { dg-error "must be a PARAMETER" }
26 end structure
28 structure ! { dg-error "Structure name expected" }
29 structure / ! { dg-error "Structure name expected" }
30 structure // ! { dg-error "Structure name expected" }
31 structure /.or./ ! { dg-error "Structure name expected" }
32 structure /integer/ ! { dg-error "Structure name.*cannot be the same" }
33 structure /foo/ bar ! { dg-error "Junk after" }
34 structure /t1/ ! { dg-error "Type definition.*T1" }
36 record ! { dg-error "Structure name expected" }
37 record bar ! { dg-error "Structure name expected" }
38 record / bar ! { dg-error "Structure name expected" }
39 record // bar ! { dg-error "Structure name expected" }
40 record foo/ bar ! { dg-error "Structure name expected" }
41 record /foo bar ! { dg-error "Structure name expected" }
42 record /foo/ bar ! { dg-error "used before it is defined" }
43 record /t1/ ! { dg-error "Invalid character in name" }
45 structure /t2/
46 ENTRY here ! { dg-error "ENTRY statement.*cannot appear" }
47 integer a
48 integer a ! { dg-error "Component.*already declared" }
49 structure $z ! { dg-error "Invalid character in name" }
50 structure // ! { dg-error "Invalid character in name" }
51 structure // x ! { dg-error "Invalid character in name" }
52 structure /t3/ ! { dg-error "Invalid character in name" }
53 structure /t3/ x,$y ! { dg-error "Invalid character in name" }
54 structure /t4/ y
55 integer i, j, k
56 end structure
57 structure /t4/ z ! { dg-error "Type definition.*T4" }
58 end structure
60 end