aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/max-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg/max-1.c')
-rw-r--r--gcc/testsuite/gcc.dg/max-1.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/gcc/testsuite/gcc.dg/max-1.c b/gcc/testsuite/gcc.dg/max-1.c
index a5f1605..40f2145 100644
--- a/gcc/testsuite/gcc.dg/max-1.c
+++ b/gcc/testsuite/gcc.dg/max-1.c
@@ -7,14 +7,19 @@
/* m32c has varying sized pointers */
/* { dg-skip-if "" { "m32c-*-*" } { "*" } { "-mcpu=m32c" "-mcpu=m32cm" } } */
+/* Kludge to make it signed. */
+#define unsigned signed
+__extension__ typedef __SIZE_TYPE__ ssize_t;
+#undef unsigned
+
extern void abort (void);
-long fff[10];
+ssize_t fff[10];
-void f(long a, long b)
+void f(ssize_t a, ssize_t b)
{
- long crcc = b;
- long d = *((long*)(a+1));
+ ssize_t crcc = b;
+ ssize_t d = *((ssize_t*)(a+1));
int i;
a = d >= b? d:b;
@@ -27,11 +32,11 @@ void f(long a, long b)
/* The variable a cannot be a local variable as we get better aliasing
now and decide that the store to a is dead. The better aliasing comes
from better representation of pointer arithmetic. */
-long a = 10;
+ssize_t a = 10;
int main(void)
{
int i;
- f((long)(&a)-1,0);
+ f((ssize_t)(&a)-1,0);
for(i = 0;i<10;i++)
if (fff[i]!=10)
abort ();