-- Copyright (C) 1992 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., 675 Mass Ave, Cambridge, MA 02139, 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;