diff options
Diffstat (limited to 'mcon/U/ptrsize.U')
-rw-r--r-- | mcon/U/ptrsize.U | 57 |
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.* |