[PATCH, committed] Fix int vs bool issue in jit.dg/test-arith-overflow.c
David Malcolm
dmalcolm@redhat.com
Mon Jan 19 20:37:00 GMT 2015
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
More information about the Gcc-patches
mailing list