aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2021-02-26 18:23:22 +0100
committerMattias Andrée <maandree@kth.se>2021-02-26 18:23:22 +0100
commite4dbd976e9522d5fa17139126edf38d654f45b1d (patch)
treec094b08baa9f548221f8d72a3942ba4375523e24
parentm (diff)
downloadlibsimple-1.2.tar.gz
libsimple-1.2.tar.bz2
libsimple-1.2.tar.xz
Fix tests and libsimple_arraycpy and libsimple_arraymove1.2
Signed-off-by: Mattias Andrée <maandree@kth.se>
-rw-r--r--Makefile2
-rw-r--r--aligned_memdup.c3
-rw-r--r--libsimple/array.h4
-rw-r--r--test.c2
4 files changed, 7 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 61d07da..cc1c5c9 100644
--- a/Makefile
+++ b/Makefile
@@ -222,7 +222,9 @@ all: libsimple.a $(TESTS)
$(OBJ): $(@:.o=.c) $(HDR)
$(TESTS): $(@:=.o) test.o libsimple.a
$(TESTS:=.o): $(@:.test.o=.c) $(HDR) test.h
+
test.o: test.c $(HDR) test.h
+ $(CC) -c -o $@ test.c $(CFLAGS) -DTEST -O0 -ffreestanding
libsimple.a: $(OBJ)
$(AR) rc $@ $?
diff --git a/aligned_memdup.c b/aligned_memdup.c
index ec06c38..7b2ca71 100644
--- a/aligned_memdup.c
+++ b/aligned_memdup.c
@@ -17,6 +17,7 @@ libsimple_aligned_memdup(const void *s, size_t alignment, size_t n)
#else
#include "test.h"
+#undef memset
int
main(void)
@@ -26,7 +27,7 @@ main(void)
void *p = libsimple_aligned_memdup(s, 4, 5);
assert(p);
assert(p != s);
- assert(!((uintptr_t)s % 4));
+ assert(!((uintptr_t)p % 4));
if (have_custom_malloc()) {
assert((info = get_allocinfo(p)));
assert(info->size == 8);
diff --git a/libsimple/array.h b/libsimple/array.h
index 3e8eab1..b17966b 100644
--- a/libsimple/array.h
+++ b/libsimple/array.h
@@ -123,13 +123,13 @@
#endif
-#define libsimple_arraycpy(d, s, n) libsimple_memcpy(d, s, (n) * sizeof *(s))
+#define libsimple_arraycpy(d, s, n) memcpy(d, s, (n) * sizeof *(s))
#ifndef arraycpy
# define arraycpy(...) libsimple_arraycpy(__VA_ARGS__)
#endif
-#define libsimple_arraymove(d, s, n) libsimple_memmove(d, s, (n) * sizeof *(s))
+#define libsimple_arraymove(d, s, n) memmove(d, s, (n) * sizeof *(s))
#ifndef arraymove
# define arraymove(...) libsimple_arraymove(__VA_ARGS__)
#endif
diff --git a/test.c b/test.c
index 5297987..e5ecf00 100644
--- a/test.c
+++ b/test.c
@@ -287,7 +287,7 @@ memset(void *s, int c, size_t n)
{
char *str = s;
struct allocinfo *info;
- if (just_alloced && s == just_alloced) {
+ if (s == just_alloced && just_alloced && !c) {
info = get_allocinfo(s);
info->zeroed = MAX(info->zeroed, n);
}