diff options
-rw-r--r-- | runtime/klee-libc/bcmp.c | 19 | ||||
-rw-r--r-- | test/Runtime/FreeStanding/freestanding_only.c | 1 |
2 files changed, 20 insertions, 0 deletions
diff --git a/runtime/klee-libc/bcmp.c b/runtime/klee-libc/bcmp.c new file mode 100644 index 00000000..23e1c233 --- /dev/null +++ b/runtime/klee-libc/bcmp.c @@ -0,0 +1,19 @@ +/*===-- bcmp.c ------------------------------------------------------------===// +// +// The KLEE Symbolic Virtual Machine +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===*/ + +#include <strings.h> + +int bcmp(const void *s1, const void *s2, size_t n) { + const unsigned char *p1 = s1, *p2 = s2; + while (--n != 0) { + if (*p1++ != *p2++) + return 1; + } + return 0; +} diff --git a/test/Runtime/FreeStanding/freestanding_only.c b/test/Runtime/FreeStanding/freestanding_only.c index 0f03c84c..a6d1b0d4 100644 --- a/test/Runtime/FreeStanding/freestanding_only.c +++ b/test/Runtime/FreeStanding/freestanding_only.c @@ -26,6 +26,7 @@ int main(int argc, char **argv) { assert(memcmp(src, dst, LENGTH) == 0); // CHECK-NOT: calling external: memcmp + // CHECK-NOT: calling external: bcmp assert(*src == 42); assert(*src == *dst); |