This testcase I added failed to compile on AIX or older linux due to
the use of aligned_alloc(). Now fixed to use posix_memalign if
available, and valloc otherwise.
Now it compiles and passes on x86_64 (fedora 25), ppc64 (RHEL6.8), and
AIX. OK for trunk?
2017-02-14 Aaron Sawdey <acsaw...@linux.vnet.ibm.com>
* gcc.dg/strncmp-2.c: Portability fixes.
--
Aaron Sawdey, Ph.D. acsaw...@linux.vnet.ibm.com
050-2/C113 (507) 253-7520 home: 507/263-0782
IBM Linux Technology Center - PPC Toolchain
Index: strncmp-2.c
===================================================================
--- strncmp-2.c (revision 245439)
+++ strncmp-2.c (working copy)
@@ -19,7 +19,12 @@
{
long pgsz = sysconf(_SC_PAGESIZE);
char buf1[sz+1];
- char *buf2 = aligned_alloc(pgsz,2*pgsz);
+ char *buf2;
+#if _POSIX_C_SOURCE >= 200112L
+ if ( posix_memalign ((void **)&buf2, pgsz, 2*pgsz) ) abort ();
+#else
+ if ( !(buf2 = valloc(2*pgsz))) abort ();
+#endif
char *p2;
int r,i,e;
@@ -35,6 +40,7 @@
e = lib_memcmp(buf1,p2,sz);
(*test_memcmp)(buf1,p2,e);
}
+ free(buf2);
}
#define RUN_TEST(SZ) test_driver_strncmp (test_strncmp_ ## SZ, test_memcmp_ ## SZ, SZ);