[committed] Fix jit.dg/test-alignment* (PR jit/82846)

Message ID 1516841604-40283-1-git-send-email-dmalcolm@redhat.com
State New
Headers show
Series
  • [committed] Fix jit.dg/test-alignment* (PR jit/82846)
Related show

Commit Message

David Malcolm Jan. 25, 2018, 12:53 a.m.
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(-)

-- 
1.8.5.3

Patch

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;