From 15bcd01a94c23f312ac03b5faea29f18ef8d2a07 Mon Sep 17 00:00:00 2001 From: Kewen Lin Date: Fri, 6 Nov 2020 14:45:06 +0100 Subject: [PATCH] testsuite: fix malloc alignment in test gcc/testsuite/ChangeLog: PR gcov-profile/97461 * gcc.dg/tree-prof/pr97461.c: Return aligned memory. --- gcc/testsuite/gcc.dg/tree-prof/pr97461.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.dg/tree-prof/pr97461.c b/gcc/testsuite/gcc.dg/tree-prof/pr97461.c index 8d21a3ef421..213fac9af04 100644 --- a/gcc/testsuite/gcc.dg/tree-prof/pr97461.c +++ b/gcc/testsuite/gcc.dg/tree-prof/pr97461.c @@ -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](); -- 2.30.2