Commit 4c907247 by DJ Delorie Committed by DJ Delorie

target-supports.exp (check_effective_target_size32plus): Increase size to avoid…

target-supports.exp (check_effective_target_size32plus): Increase size to avoid false positives on 24-bit address spaces.

* lib/target-supports.exp (check_effective_target_size32plus):
Increase size to avoid false positives on 24-bit address spaces.
* gcc.c-torture/compile/limits-stringlit.c: Skip if msp430.
* gcc.dg/lto/pr54709_1.c: Fix memcpy prototype.
* gcc.dg/torture/pta-ptrarith-3.c: Use __SIZE_TYPE__ instead of "int".
* gcc.dg/torture/pr36373-10.c: Use __SIZE_TYPE__ if present.
* gcc.dg/torture/pr57864.c: Use __SIZE_TYPE__.
* gcc.dg/torture/pr26763-2.c: Use __SIZE_TYPE__ instead of "int".
* gcc.dg/tree-ssa/isolate-3.c: Use __SIZE_TYPE__ instead of "long unsigned int".
* gcc.dg/pr52549.c: Use __SIZE_TYPE__ if present.

From-SVN: r214746
parent fdf96aa3
2014-08-29 DJ Delorie <dj@redhat.com>
* lib/target-supports.exp (check_effective_target_size32plus):
Increase size to avoid false positives on 24-bit address spaces.
* gcc.c-torture/compile/limits-stringlit.c: Skip if msp430.
* gcc.dg/lto/pr54709_1.c: Fix memcpy prototype.
* gcc.dg/torture/pta-ptrarith-3.c: Use __SIZE_TYPE__ instead of "int".
* gcc.dg/torture/pr36373-10.c: Use __SIZE_TYPE__ if present.
* gcc.dg/torture/pr57864.c: Use __SIZE_TYPE__.
* gcc.dg/torture/pr26763-2.c: Use __SIZE_TYPE__ instead of "int".
* gcc.dg/tree-ssa/isolate-3.c: Use __SIZE_TYPE__ instead of "long unsigned int".
* gcc.dg/pr52549.c: Use __SIZE_TYPE__ if present.
2014-08-29 Paolo Carlini <paolo.carlini@oracle.com> 2014-08-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/54002 PR c++/54002
......
/* { dg-skip-if "Array too big" { avr-*-* picochip-*-* m32c-*-* pdp11-*-* } { "*" } { "" } } */ /* { dg-skip-if "Array too big" { avr-*-* picochip-*-* m32c-*-* pdp11-*-* msp430-*-* } { "*" } { "" } } */
#define STR2 "012345678901234567890123456789012345678901234567890123456789\ #define STR2 "012345678901234567890123456789012345678901234567890123456789\
0123456789012345678901234567890123456789" 0123456789012345678901234567890123456789"
......
void * memcpy (void *, void *, long); void * memcpy (void *, void *, __SIZE_TYPE__);
void bar (void *p, void *q, unsigned s) void bar (void *p, void *q, unsigned s)
{ {
memcpy (p, q, s); memcpy (p, q, s);
......
/* { dg-do compile } */ /* { dg-do compile } */
#if __SIZEOF_POINTER__ == __SIZEOF_LONG__ #ifdef __SIZE_TYPE__
_mark (__SIZE_TYPE__ obj, int i, char *a)
{
(char *)&(((long *)(obj)) [i]) - a;
}
#elif __SIZEOF_POINTER__ == __SIZEOF_LONG__
_mark (long obj, int i, char *a) _mark (long obj, int i, char *a)
{ {
(char *)&(((long *)(obj)) [i]) - a; (char *)&(((long *)(obj)) [i]) - a;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
extern void abort(void); extern void abort(void);
int try (char *a, int d) int try (char *a, __SIZE_TYPE__ d)
{ {
return a + d > a; return a + d > a;
} }
......
/* { dg-do run } */ /* { dg-do run } */
#if (__SIZEOF_LONG_LONG__ == __SIZEOF_POINTER__) #ifdef __SIZE_TYPE__
typedef __SIZE_TYPE__ uintptr_t;
#elif (__SIZEOF_LONG_LONG__ == __SIZEOF_POINTER__)
typedef unsigned long long uintptr_t; typedef unsigned long long uintptr_t;
#elif (__SIZEOF_LONG__ == __SIZEOF_POINTER__) #elif (__SIZEOF_LONG__ == __SIZEOF_POINTER__)
typedef unsigned long uintptr_t; typedef unsigned long uintptr_t;
......
...@@ -15,12 +15,12 @@ static void fn1(union U *p1, int p2, _Bool p3) ...@@ -15,12 +15,12 @@ static void fn1(union U *p1, int p2, _Bool p3)
union U *e; union U *e;
if (p2 == 0) if (p2 == 0)
a = ((union U*)((unsigned long)p1 & ~1))->val; a = ((union U*)((__SIZE_TYPE__)p1 & ~1))->val;
if (b) { if (b) {
e = p1; e = p1;
} else if (c) { } else if (c) {
e = ((union U*)((unsigned long)p1 & ~1))->ptr; e = ((union U*)((__SIZE_TYPE__)p1 & ~1))->ptr;
d = e; d = e;
} else { } else {
e = 0; e = 0;
......
...@@ -9,7 +9,7 @@ struct X { ...@@ -9,7 +9,7 @@ struct X {
int *r; int *r;
}; };
int __attribute__((noinline)) int __attribute__((noinline))
foo(int i, int j, int k, int off) foo(int i, int j, int k, __SIZE_TYPE__ off)
{ {
struct X x; struct X x;
int **p, *q; int **p, *q;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
/* { dg-skip-if "" keeps_null_pointer_checks } */ /* { dg-skip-if "" keeps_null_pointer_checks } */
typedef long unsigned int size_t; typedef __SIZE_TYPE__ size_t;
extern void *memset (void *__s, int __c, size_t __n) extern void *memset (void *__s, int __c, size_t __n)
__attribute__ ((__nothrow__, __leaf__)) __attribute__ ((__nonnull__ (1))); __attribute__ ((__nothrow__, __leaf__)) __attribute__ ((__nonnull__ (1)));
struct rtx_def; struct rtx_def;
......
...@@ -1809,11 +1809,12 @@ proc check_effective_target_ptr32plus { } { ...@@ -1809,11 +1809,12 @@ proc check_effective_target_ptr32plus { } {
} }
# Return 1 if we support 32-bit or larger array and structure sizes # Return 1 if we support 32-bit or larger array and structure sizes
# using default options, 0 otherwise. # using default options, 0 otherwise. Avoid false positive on
# targets with 20 or 24 bit address spaces.
proc check_effective_target_size32plus { } { proc check_effective_target_size32plus { } {
return [check_no_compiler_messages size32plus object { return [check_no_compiler_messages size32plus object {
char dummy[65537]; char dummy[16777217L];
}] }]
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment