diff options
author | Manoj Srivastava <srivasta@golden-gryphon.com> | 2014-04-27 17:54:01 -0700 |
---|---|---|
committer | Manoj Srivastava <srivasta@golden-gryphon.com> | 2014-04-27 17:54:01 -0700 |
commit | 8f5e5726134ce5b4bd436b16f367796d851df553 (patch) | |
tree | 0ce2ad130721dcf917d7f81fb8495bf0a189d266 /mcon/U/d_bcopy.U | |
parent | 02bf7be6fc0f798790ef5b2160bc89a77b909428 (diff) |
Imported Upstream version 3.5-36
Diffstat (limited to 'mcon/U/d_bcopy.U')
-rw-r--r-- | mcon/U/d_bcopy.U | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/mcon/U/d_bcopy.U b/mcon/U/d_bcopy.U index 4cbc2c0..c9ada58 100644 --- a/mcon/U/d_bcopy.U +++ b/mcon/U/d_bcopy.U @@ -1,11 +1,11 @@ -?RCS: $Id: d_bcopy.U 1 2006-08-24 12:32:52Z rmanfredi $ +?RCS: $Id: d_bcopy.U 167 2013-05-08 17:58:00Z rmanfredi $ ?RCS: ?RCS: Copyright (c) 1991-1997, 2004-2006, 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: d_bcopy.U,v $ @@ -18,7 +18,7 @@ ?RCS: Revision 3.0 1993/08/18 12:05:44 ram ?RCS: Baseline for dist 3.0 netwide release. ?RCS: -?MAKE:d_bcopy: Inlibc +?MAKE:d_bcopy: Trylink cat ?MAKE: -pick add $@ %< ?S:d_bcopy: ?S: This variable conditionally defines the HAS_BCOPY symbol if @@ -39,6 +39,30 @@ ?M:. ?LINT:set d_bcopy : see if bcopy exists -set bcopy d_bcopy -eval $inlibc +?X: Test is over-complex to avoid gcc optimizing bcopy() away. +$cat >try.c <<EOC +#include <strings.h> +static void +init_data(char *a, unsigned len) +{ + unsigned i; + for (i = 0; i < len; i++) + a[i] = i * 2 + 1; +} +static void +recopy_data(char *src, char *dst, unsigned len) +{ + bcopy(&src[3], &dst[0], len - 3); +} +int main(void) +{ + static char src[20], dst[20]; + init_data(src, sizeof src); + recopy_data(src, dst, sizeof src); + return dst[0] + dst[1]; +} +EOC +cyn=bcopy +set d_bcopy +eval $trylink |