This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, committed] Fix int vs bool issue in jit.dg/test-arith-overflow.c


This jit testcase was failing on s390x and ppc64 due to
carelessly assuming int==bool.

Patch fixes the testcase on s390x and ppc64.  Also tested on
x86_64 and aarch64.

Committed to trunk as r219856.

gcc/testsuite/ChangeLog:
	* jit.dg/test-arith-overflow.c: Include stdbool.h.
	(create_overflow_fn): Update comment to clarify that
	the third param of the created function is a bool *, not
	an int *.
	(verify_int_overflow_fn): Convert param "expected_ovf" from
	int to bool.  Update third param of "overflow_fn_type" from int *
	to bool *.  Update local "actual_ovf" from int to bool.
	(verify_uint_overflow_fn): Likewise.
---
 gcc/testsuite/jit.dg/test-arith-overflow.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/gcc/testsuite/jit.dg/test-arith-overflow.c b/gcc/testsuite/jit.dg/test-arith-overflow.c
index 8d130b2..ac2fa36 100644
--- a/gcc/testsuite/jit.dg/test-arith-overflow.c
+++ b/gcc/testsuite/jit.dg/test-arith-overflow.c
@@ -2,6 +2,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <limits.h>
+#include <stdbool.h>
 
 #include "libgccjit.h"
 
@@ -16,7 +17,7 @@ create_overflow_fn (gcc_jit_context *ctxt,
   /* Create the equivalent of this C:
 
        int
-       test_overflow_T_OP (T x, T y, int *ovf)
+       test_overflow_T_OP (T x, T y, bool *ovf)
        {
 	 T result;
 	 result = x OP y;
@@ -129,16 +130,16 @@ verify_int_overflow_fn (gcc_jit_result *jit_result,
 			const char *funcname,
 			int x, int y,
 			int expected_result,
-			int expected_ovf)
+			bool expected_ovf)
 {
   CHECK_NON_NULL (jit_result);
-  typedef int (*overflow_fn_type) (int, int, int *);
+  typedef int (*overflow_fn_type) (int, int, bool *);
   overflow_fn_type fn =
     (overflow_fn_type)gcc_jit_result_get_code (jit_result, funcname);
   CHECK_NON_NULL (fn);
 
   /* Call the function:  */
-  int actual_ovf = 0;
+  bool actual_ovf = 0;
   int actual_result = fn (x, y, &actual_ovf);
   note ("%s (%d, %d) returned: %d with ovf: %d",
 	funcname, x, y, actual_result, actual_ovf);
@@ -151,16 +152,17 @@ verify_uint_overflow_fn (gcc_jit_result *jit_result,
 			 const char *funcname,
 			 unsigned int x, unsigned int y,
 			 unsigned int expected_result,
-			 int expected_ovf)
+			 bool expected_ovf)
 {
   CHECK_NON_NULL (jit_result);
-  typedef unsigned int (*overflow_fn_type) (unsigned int, unsigned int, int *);
+  typedef unsigned int (*overflow_fn_type) (unsigned int, unsigned int,
+					    bool *);
   overflow_fn_type fn =
     (overflow_fn_type)gcc_jit_result_get_code (jit_result, funcname);
   CHECK_NON_NULL (fn);
 
   /* Call the function:  */
-  int actual_ovf = 0;
+  bool actual_ovf = 0;
   unsigned int actual_result = fn (x, y, &actual_ovf);
   note ("%s (%d, %d) returned: %d with ovf: %d",
 	funcname, x, y, actual_result, actual_ovf);
-- 
1.8.5.3


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]