testsuite: fix malloc alignment in test
authorKewen Lin <linkw@linux.ibm.com>
Fri, 6 Nov 2020 13:45:06 +0000 (14:45 +0100)
committerMartin Liska <mliska@suse.cz>
Fri, 6 Nov 2020 13:47:44 +0000 (14:47 +0100)
gcc/testsuite/ChangeLog:

PR gcov-profile/97461
* gcc.dg/tree-prof/pr97461.c: Return aligned memory.

gcc/testsuite/gcc.dg/tree-prof/pr97461.c

index 8d21a3ef421e87f4691c1c271d5af182de153af4..213fac9af042203eb5509efdcc740f53cab62c45 100644 (file)
@@ -20,7 +20,13 @@ static const fun_t funs[2] = { f1, f2, };
 
 static void * malloc_impl(size_t size) {
     void * r = &memory[memory_p];
-    memory_p += size;
+    /* The malloc() and calloc() functions return a pointer to the allocated
+     * memory, which is suitably aligned for any built-in type.  Use 16
+     * bytes here as the basic alignment requirement for user-defined malloc
+     * and calloc.  See PR97594 for the details.  */
+    #define ROUND_UP_FOR_16B_ALIGNMENT(x) ((x + 15) & (-16))
+
+    memory_p += ROUND_UP_FOR_16B_ALIGNMENT(size);
 
     // force TOPN profile
     funs[size % 2]();