]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gm2/iso/pass/realbitscast.mod
Merge modula-2 front end onto gcc.
[thirdparty/gcc.git] / gcc / testsuite / gm2 / iso / pass / realbitscast.mod
1 (* Copyright (C) 2005, 2006 Free Software Foundation, Inc. *)
2 (* This file is part of GNU Modula-2.
3
4 GNU Modula-2 is free software; you can redistribute it and/or modify it under
5 the terms of the GNU General Public License as published by the Free
6 Software Foundation; either version 2, or (at your option) any later
7 version.
8
9 GNU Modula-2 is distributed in the hope that it will be useful, but WITHOUT ANY
10 WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 for more details.
13
14 You should have received a copy of the GNU General Public License along
15 with gm2; see the file COPYING. If not, write to the Free Software
16 Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *)
17
18 MODULE realbitscast;
19
20 FROM SYSTEM IMPORT CAST, WORD ;
21
22 #undef HAVE_REAL96
23
24 #if defined(__sparc__)
25 # undef HAVE_REAL96
26 #elif defined(__alpha__) && defined(__arch64__)
27 # define HAVE_REAL96
28 #elif defined(__ppc__)
29 # undef HAVE_REAL96
30 #elif defined(__ia64)
31 # undef HAVE_REAL69
32 #elif defined(__APPLE__) && defined(__i386__)
33 # undef HAVE_REAL96
34 #elif defined(__APPLE__)
35 # define HAVE_REAL96
36 #endif
37
38
39 TYPE
40 BITS32 = SET OF [0..31];
41 BITS64 = SET OF [0..63];
42 BITS96 = SET OF [0..95] ;
43 REAL32 = SHORTREAL;
44 REAL64 = REAL;
45
46 #if defined(HAVE_REAL96)
47 REAL96 = LONGREAL ;
48 (* and on the x86_64 LONGREAL is 128 bits *)
49 (* this is also true for at least some alphas *)
50 #endif
51
52 VAR
53 b32 : BITS32;
54 b64 : BITS64;
55 r32 : REAL32;
56 r64 : REAL64;
57 #if defined(HAVE_REAL96)
58 b96 : BITS96 ;
59 r96 : REAL96 ;
60 #endif
61 w : WORD ;
62 BEGIN
63 r32 := 1.0 ;
64 b32 := CAST(BITS32, r32) ;
65 b64 := CAST(BITS64, r64) ;
66 #if defined(HAVE_REAL96)
67 b96 := CAST(BITS96, r96)
68 #endif
69 END realbitscast.