path: root/mcon/U/d_casti32.U
diff options
authorManoj Srivastava <>2008-05-30 12:42:47 -0700
committerManoj Srivastava <>2008-05-30 12:42:47 -0700
commitceb3507a8fca872770b3dcd7e5c5b36179ab95b0 (patch)
treeb46b4e25cfff5f4c13a330b8428ceed343e3796c /mcon/U/d_casti32.U
Import dist_3.5-236.orig.tar.gz
[dgit import orig dist_3.5-236.orig.tar.gz]
Diffstat (limited to 'mcon/U/d_casti32.U')
1 files changed, 87 insertions, 0 deletions
diff --git a/mcon/U/d_casti32.U b/mcon/U/d_casti32.U
new file mode 100644
index 0000000..6363761
--- /dev/null
+++ b/mcon/U/d_casti32.U
@@ -0,0 +1,87 @@
+?RCS: $Id$
+?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+?RCS: You may redistribute only under the terms of the Artistic License,
+?RCS: as specified in the README file that comes with the distribution.
+?RCS: You may reuse parts of this distribution only within the terms of
+?RCS: that same Artistic License; a copy of which may be found at the root
+?RCS: of the source tree for dist 4.0.
+?RCS: Original Author: Andy Dougherty <>
+?RCS: $Log: d_casti32.U,v $
+?RCS: Revision 1995/05/12 12:10:45 ram
+?RCS: patch54: made sure cc and ccflags are conditional dependencies
+?RCS: Revision 1994/10/29 16:09:37 ram
+?RCS: patch36: declare signal handler correctly (ADO)
+?RCS: Revision 1994/08/29 16:07:06 ram
+?RCS: patch32: created by ADO
+?X: Can the compiler cast large floats to 32-bit integers?
+?MAKE:d_casti32: cat +cc +ccflags rm_try intsize Setvar test signal_t
+?MAKE: -pick add $@ %<
+?S: This variable conditionally defines CASTI32, which indicates
+?S: whether the C compiler can cast large floats to 32-bit ints.
+?C: This symbol is defined if the C compiler can cast negative
+?C: or large floating point numbers to 32-bit ints.
+?T:xxx yyy
+?H:#$d_casti32 CASTI32 /**/
+?LINT:set d_casti32
+: check for ability to cast large floats to 32-bit ints.
+echo " "
+echo 'Checking whether your C compiler can cast large floats to int32.' >&4
+if $test "$intsize" -eq 4; then
+ xxx=int
+ xxx=long
+$cat >try.c <<EOCP
+#include <sys/types.h>
+#include <signal.h>
+$signal_t blech() { exit(3); }
+int main()
+ $xxx i32;
+ double f;
+ int result = 0;
+ signal(SIGFPE, blech);
+ f = (double) 0x7fffffff;
+ f = 10 * f;
+ i32 = ($xxx) f;
+ if (i32 != ($xxx) f)
+ result |= 1;
+ exit(result);
+if $cc $ccflags -o try try.c >/dev/null 2>&1; then
+ ./try
+ yyy=$?
+ echo "(I can't seem to compile the test program--assuming it can't)"
+ yyy=1
+case "$yyy" in
+0) val="$define"
+ echo "Yup, it can."
+ ;;
+*) val="$undef"
+ echo "Nope, it can't."
+ ;;
+set d_casti32
+eval $setvar