summaryrefslogtreecommitdiff
path: root/mcon/U/ptrsize.U
diff options
context:
space:
mode:
Diffstat (limited to 'mcon/U/ptrsize.U')
-rw-r--r--mcon/U/ptrsize.U57
1 files changed, 26 insertions, 31 deletions
diff --git a/mcon/U/ptrsize.U b/mcon/U/ptrsize.U
index abfa17d..24a733b 100644
--- a/mcon/U/ptrsize.U
+++ b/mcon/U/ptrsize.U
@@ -1,21 +1,14 @@
-?RCS: $Id: ptrsize.U 1 2006-08-24 12:32:52Z rmanfredi $
+?RCS: $Id: ptrsize.U 167 2013-05-08 17:58:00Z rmanfredi $
?RCS:
-?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+?RCS: Copyright (c) 1991-1997, 2004-2006, 2012 Raphael Manfredi
?RCS:
-?RCS: You may redistribute only under the terms of the Artistic Licence,
+?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 Licence; a copy of which may be found at the root
+?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:
-?RCS: $Log: ptrsize.U,v $
-?RCS: Revision 3.0.1.1 1994/10/29 16:28:19 ram
-?RCS: patch36: added ?F: line for metalint file checking
-?RCS:
-?RCS: Revision 3.0 1993/08/18 12:09:37 ram
-?RCS: Baseline for dist 3.0 netwide release.
-?RCS:
-?MAKE:ptrsize: cat rm Myread +cc +ccflags
+?MAKE:ptrsize: Assert Myread cat rm +cc +ccflags echo n c
?MAKE: -pick add $@ %<
?S:ptrsize:
?S: This variable contains the value of the PTRSIZE symbol, which
@@ -25,34 +18,36 @@
?C: This symbol contains the size of a pointer, so that the C preprocessor
?C: can make decisions based on it.
?C:.
-?H:#define PTRSIZE $ptrsize /**/
+?H:#define PTRSIZE $ptrsize
?H:.
-?F:!try
+?T:size
: check for length of pointer
echo " "
-case "$ptrsize" in
-'')
- echo "Checking to see how big your pointers are..." >&4
- $cat >try.c <<'EOCP'
-#include <stdio.h>
+$echo $n "Checking to see how big your pointers are...$c" >&4
+for size in 2 4 8 16 error; do
+ $cat >try.c <<EOCP
+#include "static_assert.h"
+char *foo;
int main()
{
- printf("%d\n", sizeof(char *));
+ STATIC_ASSERT($size == sizeof(foo));
+ return 0;
}
EOCP
- if $cc $ccflags -o try try.c >/dev/null 2>&1 ; then
- dflt=`./try`
- else
- dflt='4'
- echo "(I can't seem to compile the test program. Guessing...)"
- fi
+ if $cc -c $ccflags try.c >/dev/null 2>&1; then break; fi
+done
+case "$size" in
+error)
+ echo " cannot compute it." >&4
+ dflt=4
+ rp="What is the size of a pointer type (in bytes)?"
+ . ./myread
+ ptrsize="$ans"
;;
*)
- dflt="$ptrsize"
+ echo " $size bytes." >&4
+ ptrsize=$size
;;
esac
-rp="What is the size of a pointer (in bytes)?"
-. ./myread
-ptrsize="$ans"
-$rm -f try.c try
+$rm -f try.*