| -- Copyright 1992, 1995 Free Software Foundation, Inc. |
| |
| -- This program is free software; you can redistribute it and/or modify |
| -- it under the terms of the GNU General Public License as published by |
| -- the Free Software Foundation; either version 2 of the License, or |
| -- (at your option) any later version. |
| -- |
| -- This program is distributed in the hope that it will be useful, |
| -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
| -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| -- GNU General Public License for more details. |
| -- |
| -- You should have received a copy of the GNU General Public License |
| -- along with this program; if not, write to the Free Software |
| -- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
| |
| -- Please email any bugs, comments, and/or additions to this file to: |
| -- bug-gdb@prep.ai.mit.edu |
| |
| -- |
| -- test program 2 (refer to tests2.exp) |
| -- |
| |
| tests2: module; |
| |
| -- testpattern |
| syn pat1 ulong = H'aaaaaaaa; |
| syn pat2 ulong = H'55555555; |
| |
| -- discrete modes |
| newmode bytem = struct ( |
| p1 ulong, |
| m byte, |
| p2 ulong); |
| newmode ubytem = struct ( |
| p1 ulong, |
| m ubyte, |
| p2 ulong); |
| newmode intm = struct ( |
| p1 ulong, |
| m int, |
| p2 ulong); |
| newmode uintm = struct ( |
| p1 ulong, |
| m uint, |
| p2 ulong); |
| newmode longm = struct ( |
| p1 ulong, |
| m long, |
| p2 ulong); |
| newmode ulongm = struct ( |
| p1 ulong, |
| m ulong, |
| p2 ulong); |
| newmode boolm = struct ( |
| p1 ulong, |
| m bool, |
| p2 ulong); |
| newmode charm1 = struct ( |
| p1 ulong, |
| m char(4), |
| p2 ulong); |
| newmode charm2 = struct ( |
| p1 ulong, |
| m char(7), |
| p2 ulong); |
| newmode charm3 = struct ( |
| p1 ulong, |
| m char(8) varying, |
| p2 ulong); |
| newmode charm4 = struct ( |
| p1 ulong, |
| m char, |
| p2 ulong); |
| newmode bitm1 = struct ( |
| p1 ulong, |
| m bit(8), |
| p2 ulong); |
| newmode bitm2 = struct ( |
| p1 ulong, |
| m bit(10), |
| p2 ulong); |
| newmode setm1 = struct ( |
| p1 ulong, |
| m set (a, b, c, d, e, f, g, h), |
| p2 ulong); |
| newmode nset1 = struct ( |
| p1 ulong, |
| m set (na = 2147483648, nb = 1024, nc = 4294967295), |
| p2 ulong); |
| newmode rm1 = struct ( |
| p1 ulong, |
| m range (lower(byte):upper(byte)), |
| p2 ulong); |
| newmode rm2 = struct ( |
| p1 ulong, |
| m range (lower(int):upper(int)), |
| p2 ulong); |
| newmode rm3 = struct ( |
| p1 ulong, |
| m range (lower(long):upper(long)), |
| p2 ulong); |
| newmode pm1 = struct ( |
| p1 ulong, |
| m powerset set (pa, pb, pc, pd, pe, pf, pg, ph), |
| p2 ulong); |
| newmode pm2 = struct ( |
| p1 ulong, |
| m powerset int (1:32), |
| p2 ulong); |
| -- this should be rejected by the gnuchill compiler ! |
| newmode pm3 = struct ( |
| p1 ulong, |
| -- m powerset long (lower(long): upper(long)), |
| p2 ulong); |
| newmode refm1 = struct ( |
| p1 ulong, |
| m ptr, |
| p2 ulong); |
| newmode refm2 = struct ( |
| p1 ulong, |
| m ref bytem, |
| p2 ulong); |
| newmode prm1 = struct ( |
| p1 ulong, |
| m proc (), |
| p2 ulong); |
| newmode tim1 = struct ( |
| p1 ulong, |
| m time, |
| p2 ulong); |
| newmode tim2 = struct ( |
| p1 ulong, |
| m duration, |
| p2 ulong); |
| newmode rem1 = struct ( |
| p1 ulong, |
| m real, |
| p2 ulong); |
| newmode rem2 = struct ( |
| p1 ulong, |
| m long_real, |
| p2 ulong); |
| newmode arrm1 = struct ( |
| p1 ulong, |
| m array(1:3, 1:2) int, |
| p2 ulong); |
| newmode strum1 = struct ( |
| p1 ulong, |
| m struct (a, b int, ch char(4)), |
| p2 ulong); |
| |
| |
| -- dummyfunction for breakpoints |
| dummyfunc: proc(); |
| end dummyfunc; |
| |
| |
| dcl b1 bytem init := [pat1, -128, pat2]; |
| dcl ub1 ubytem init := [pat1, 0, pat2]; |
| dcl i1 intm init := [pat1, -32768, pat2]; |
| dcl ui1 uintm init := [pat1, 0, pat2]; |
| dcl l1 longm init := [pat1, -2147483648, pat2]; |
| dcl ul1 ulongm init := [pat1, 0, pat2]; |
| dcl bo1 boolm init := [pat1, true, pat2]; |
| dcl c1 charm1 init := [pat1, "1234", pat2]; |
| dcl c2 charm2 init := [pat1, "1234567", pat2]; |
| dcl c3 charm3 init := [pat1, "12345678", pat2]; |
| dcl c4 charm4 init := [pat1, C'00', pat2]; |
| dcl bi1 bitm1 init := [pat1, B'01011010', pat2]; |
| dcl bi2 bitm2 init := [pat1, B'1010110101', pat2]; |
| dcl se1 setm1 init := [pat1, a, pat2]; |
| dcl nse1 nset1 init := [pat1, na, pat2]; |
| dcl r1 rm1 init := [pat1, -128, pat2]; |
| dcl r2 rm2 init := [pat1, -32768, pat2]; |
| dcl r3 rm3 init := [pat1, -2147483648, pat2]; |
| dcl p1 pm1 init := [pat1, [pa], pat2]; |
| dcl p2 pm2 init := [pat1, [1], pat2]; |
| -- dcl p3 pm3 init := [pat1, [-1], pat2]; -- FIXME: bug in gnuchill |
| dcl ref1 refm1 init := [pat1, null, pat2]; |
| dcl ref2 refm2 init := [pat1, null, pat2]; |
| dcl pr1 prm1; |
| dcl ti1 tim1 init := [pat1, 0, pat2]; |
| dcl ti2 tim2 init := [pat1, 0, pat2]; |
| dcl re1 rem1 init := [pat1, 0.0, pat2]; |
| dcl re2 rem2 init := [pat1, 0.0, pat2]; |
| dcl arrl1 arrm1 init:=[pat1, [(1:3): [0,0]], pat2]; |
| dcl strul1 strum1 init := [pat1, [.a: 0, .b: 0, .ch: "0000"], pat2]; |
| |
| pr1 := [pat1, dummyfunc, pat2]; |
| dummyfunc(); |
| |
| end tests2; |