These testcases jit-compile functions that return char, but
were erroneously calling them as if they returned int.
This led to errors for certain target configurations (e.g.
reading from %eax (32-bit) in the harness when only %al (8-bit)
had been written to in the jit-compiled function).
Regrtested on x86_64-pc-linux-gnu, and smoketested with
"-with-arch=haswell--with-cpu=haswell".
Committed to trunk as r257037.
gcc/testsuite/ChangeLog:
PR jit/82846
* jit.dg/test-alignment.c (create_aligned_code): Fix return type
of "fn_type" typedef.
* jit.dg/test-alignment.cc (verify_aligned_code): Likewise.
---
gcc/testsuite/jit.dg/test-alignment.c | 2 +-
gcc/testsuite/jit.dg/test-alignment.cc | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/testsuite/jit.dg/test-alignment.c
b/gcc/testsuite/jit.dg/test-alignment.c
index 686d981..82328d5 100644
--- a/gcc/testsuite/jit.dg/test-alignment.c
+++ b/gcc/testsuite/jit.dg/test-alignment.c
@@ -166,7 +166,7 @@ create_aligned_code (gcc_jit_context *ctxt, const char
*struct_name,
gcc_jit_result *result, \
const char *writer_fn_name) \
{ \
- typedef int (*fn_type) (struct TYPENAME *); \
+ typedef char (*fn_type) (struct TYPENAME *); \
CHECK_NON_NULL (result); \
\
struct TYPENAME tmp; \
diff --git a/gcc/testsuite/jit.dg/test-alignment.cc
b/gcc/testsuite/jit.dg/test-alignment.cc
index 3e99209..9a09a41 100644
--- a/gcc/testsuite/jit.dg/test-alignment.cc
+++ b/gcc/testsuite/jit.dg/test-alignment.cc
@@ -126,7 +126,7 @@ verify_aligned_code (gcc_jit_context *ctxt,
gcc_jit_result *result,
const char *writer_fn_name)
{
- typedef int (*fn_type) (T *);
+ typedef char (*fn_type) (T *);
CHECK_NON_NULL (result);
T tmp;
--
1.8.5.3