This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Patch, testsuite] Make some more tests xfail/pass/unsupported for avr
- From: Senthil Kumar Selvaraj <senthil_kumar dot selvaraj at atmel dot com>
- To: gcc-patches <gcc-patches at gnu dot org>, Mike Stump <mikestump at comcast dot net>
- Date: Wed, 25 May 2016 18:53:51 +0530
- Subject: [Patch, testsuite] Make some more tests xfail/pass/unsupported for avr
- Authentication-results: sourceware.org; auth=none
Hi,
This patch attempts to fix some bogus testsuite failures by either
slightly modifying the test, adding xfail for int16 targets, or by
using the appropriate dg-require-effective-target/dg-skip-if directive.
The only tricky changes I see are
* changing usage of unsigned long to __SIZE_TYPE__ aka size_t for a
couple of tests (arg type of malloc in Warray-bounds-11.c
and in a typedef for size_t in pr62090-2.c). This makes the tests pass
for avr and x86_64.
* Skipping pr70169.c for avr, as the test doesn't appear valid for a
modified Harvard architecture. The compiler warns that the pointer is
attempting to access data memory with a program memory address, and the
extra warning causes the test to fail.
Regtesting with x86_64 showed no new regressions. The avr target of course
shows a bunch of new PASS/UNSUPPORTED/XFAILs.
If ok, could someone commit please? I don't have commit access.
Regards
Senthil
2016-05-25 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* c-c++-common/Wduplicated-cond-1.c: Use smaller const literal.
* c-c++-common/pr60226.c: Require int32plus.
* gcc.c-torture/execute/pr70602.c: Likewise.
* gcc.dg/Warray-bounds-11.c: Use __SIZE_TYPE__ instead of
unsigned long for malloc arg type.
* gcc.dg/asr_div1.c: Require int32plus.
* gcc.dg/enum-mode-1.c: XFAIL for int16.
* gcc.dg/pie-1.c: Require pie.
* gcc.dg/pie-2.c: Likewise.
* gcc.dg/pr59471.c: Require int32plus.
* gcc.dg/pr59963-2.c: XFAIL for int16.
* gcc.dg/pr60114.c: Require int32plus.
* gcc.dg/pr62090-2.c: Use __SIZE_TYPE__ instead of
unsigned long for typedef of size_t.
* gcc.dg/pr63914.c: Require int32plus.
* gcc.dg/pr64536.c: Require pt32plus.
* gcc.dg/pr65658.c: Likewise.
* gcc.dg/pr67271.c: Require int32plus.
* gcc.dg/pr68112.c: Likewise.
* gcc.dg/pr69071.c: Skip for avr target.
* gcc.dg/pr69973.c: Require int32plus.
* gcc.dg/pr70169.c: Skip for avr target.
* gcc.dg/sso-6.c: Require int32plus.
* gcc.dg/sso-7.c: Likewise.
* gcc.dg/sso-8.c: Likewise.
* gcc.dg/vrp-min-max-2.c: Likewise.
diff --git gcc/testsuite/c-c++-common/Wduplicated-cond-1.c gcc/testsuite/c-c++-common/Wduplicated-cond-1.c
index 4763a84..179c419 100644
--- gcc/testsuite/c-c++-common/Wduplicated-cond-1.c
+++ gcc/testsuite/c-c++-common/Wduplicated-cond-1.c
@@ -183,7 +183,7 @@ int
fn10 (void)
{
if (foo ())
- return 1732984;
+ return 17329;
else if (foo ())
return 18409;
return 0;
diff --git gcc/testsuite/c-c++-common/pr60226.c gcc/testsuite/c-c++-common/pr60226.c
index 6a686d7..aeb132b8 100644
--- gcc/testsuite/c-c++-common/pr60226.c
+++ gcc/testsuite/c-c++-common/pr60226.c
@@ -1,6 +1,7 @@
/* PR c/60226 */
/* { dg-do compile } */
/* { dg-options "-Wno-c++-compat" { target c } } */
+/* { dg-require-effective-target int32plus } */
typedef int __attribute__ ((aligned (1 << 28))) int28;
int28 foo[4] = {}; /* { dg-error "alignment of array elements is greater than element size" } */
diff --git gcc/testsuite/gcc.c-torture/execute/pr70602.c gcc/testsuite/gcc.c-torture/execute/pr70602.c
index c6628b0..4a931fc 100644
--- gcc/testsuite/gcc.c-torture/execute/pr70602.c
+++ gcc/testsuite/gcc.c-torture/execute/pr70602.c
@@ -1,4 +1,5 @@
/* PR tree-optimization/70602 */
+/* { dg-require-effective-target int32plus } */
struct __attribute__((packed)) S
{
diff --git gcc/testsuite/gcc.dg/Warray-bounds-11.c gcc/testsuite/gcc.dg/Warray-bounds-11.c
index 92e92c0..089fa00 100644
--- gcc/testsuite/gcc.dg/Warray-bounds-11.c
+++ gcc/testsuite/gcc.dg/Warray-bounds-11.c
@@ -1,7 +1,8 @@
/* { dg-do compile } */
/* { dg-options "-O3 -Warray-bounds=2" } */
-extern void* malloc(unsigned long x);
+typedef __SIZE_TYPE__ size_t;
+extern void* malloc(size_t x);
int e[3];
diff --git gcc/testsuite/gcc.dg/asr_div1.c gcc/testsuite/gcc.dg/asr_div1.c
index 11b5246..bf374b8 100644
--- gcc/testsuite/gcc.dg/asr_div1.c
+++ gcc/testsuite/gcc.dg/asr_div1.c
@@ -1,6 +1,7 @@
/* Test division by const int generates only one shift. */
/* { dg-do run } */
/* { dg-options "-O2 -fdump-rtl-combine-all" } */
+/* { dg-require-effective-target int32plus } */
extern void abort (void);
diff --git gcc/testsuite/gcc.dg/enum-mode-1.c gcc/testsuite/gcc.dg/enum-mode-1.c
index a701123..09276b7 100644
--- gcc/testsuite/gcc.dg/enum-mode-1.c
+++ gcc/testsuite/gcc.dg/enum-mode-1.c
@@ -6,5 +6,5 @@ enum e2 { B = 256 } __attribute__((__packed__, __mode__(__byte__))); /* { dg-err
enum e3 { C = __INT_MAX__ } __attribute__((__mode__(__QI__))); /* { dg-error "specified mode too small for enumeral values" } */
enum e4 { D = __INT_MAX__ } __attribute__((__packed__, __mode__(__QI__))); /* { dg-error "specified mode too small for enumeral values" } */
-enum e5 { E = __INT_MAX__ } __attribute__((__mode__(__HI__))); /* { dg-error "specified mode too small for enumeral values" } */
-enum e6 { F = __INT_MAX__ } __attribute__((__packed__, __mode__(__HI__))); /* { dg-error "specified mode too small for enumeral values" } */
+enum e5 { E = __INT_MAX__ } __attribute__((__mode__(__HI__))); /* { dg-error "specified mode too small for enumeral values" "" { xfail int16 } } */
+enum e6 { F = __INT_MAX__ } __attribute__((__packed__, __mode__(__HI__))); /* { dg-error "specified mode too small for enumeral values" "" { xfail int16 } } */
diff --git gcc/testsuite/gcc.dg/pie-1.c gcc/testsuite/gcc.dg/pie-1.c
index e64763b..3f6e371 100644
--- gcc/testsuite/gcc.dg/pie-1.c
+++ gcc/testsuite/gcc.dg/pie-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile { target { ! { *-*-darwin* hppa*-*-* } } } } */
/* { dg-options "-fpie" } */
+/* { dg-require-effective-target pie } */
#if __PIC__ != 1
# error __PIC__ is not 1!
diff --git gcc/testsuite/gcc.dg/pie-2.c gcc/testsuite/gcc.dg/pie-2.c
index e185e51..7bdc4ac 100644
--- gcc/testsuite/gcc.dg/pie-2.c
+++ gcc/testsuite/gcc.dg/pie-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-fPIE" } */
+/* { dg-require-effective-target pie } */
#if __PIC__ != 2
# error __PIC__ is not 2!
diff --git gcc/testsuite/gcc.dg/pr59471.c gcc/testsuite/gcc.dg/pr59471.c
index 7f2a787..bb27fbe 100644
--- gcc/testsuite/gcc.dg/pr59471.c
+++ gcc/testsuite/gcc.dg/pr59471.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
typedef unsigned char uint8x4_t
__attribute__ ((__vector_size__ (4)));
diff --git gcc/testsuite/gcc.dg/pr59963-2.c gcc/testsuite/gcc.dg/pr59963-2.c
index ea05946..6e0a6d6 100644
--- gcc/testsuite/gcc.dg/pr59963-2.c
+++ gcc/testsuite/gcc.dg/pr59963-2.c
@@ -32,5 +32,5 @@ foo (int i)
-7, /* { dg-warning "8:negative integer implicitly converted to unsigned type" } */
-8); /* { dg-warning "9:negative integer implicitly converted to unsigned type" } */
bazu (i, i); /* { dg-warning "9:conversion" } */
- bazi (0x8, 0x80000000); /* { dg-warning "14:conversion of unsigned constant value to negative integer" } */
+ bazi (0x8, 0x80000000); /* { dg-warning "14:conversion of unsigned constant value to negative integer" "" { xfail int16 } } */
}
diff --git gcc/testsuite/gcc.dg/pr60114.c gcc/testsuite/gcc.dg/pr60114.c
index c656a95..a2db9c9 100644
--- gcc/testsuite/gcc.dg/pr60114.c
+++ gcc/testsuite/gcc.dg/pr60114.c
@@ -1,6 +1,7 @@
/* PR c/60114 */
/* { dg-do compile } */
/* { dg-options "-Wconversion" } */
+/* { dg-require-effective-target int32plus } */
struct S { int n, u[2]; };
const signed char z[] = {
diff --git gcc/testsuite/gcc.dg/pr62090-2.c gcc/testsuite/gcc.dg/pr62090-2.c
index 5bddc53..af82ede 100644
--- gcc/testsuite/gcc.dg/pr62090-2.c
+++ gcc/testsuite/gcc.dg/pr62090-2.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-O2" } */
-typedef long unsigned int size_t;
+typedef __SIZE_TYPE__ size_t;
extern __inline __attribute__ ((__always_inline__))
__attribute__ ((__gnu_inline__)) int
snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...)
diff --git gcc/testsuite/gcc.dg/pr63914.c gcc/testsuite/gcc.dg/pr63914.c
index 8bf18b3..df8f537 100644
--- gcc/testsuite/gcc.dg/pr63914.c
+++ gcc/testsuite/gcc.dg/pr63914.c
@@ -3,6 +3,7 @@
/* { dg-prune-output "non-standard ABI extension" } */
/* { dg-additional-options "-fno-common" { target hppa*-*-hpux* } } */
/* { dg-additional-options "-msse" { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-require-effective-target int32plus } */
typedef float __m128 __attribute__ ((__vector_size__ (16)));
__m128 a, d, e;
diff --git gcc/testsuite/gcc.dg/pr64536.c gcc/testsuite/gcc.dg/pr64536.c
index 9a79829..f2728fb 100644
--- gcc/testsuite/gcc.dg/pr64536.c
+++ gcc/testsuite/gcc.dg/pr64536.c
@@ -2,6 +2,7 @@
/* { dg-do link } */
/* { dg-options "-O2" } */
/* { dg-additional-options "-fPIC" { target fpic } } */
+/* { dg-require-effective-target ptr32plus } */
struct S { long q; } *h;
long a, b, g, j, k, *c, *d, *e, *f, *i;
diff --git gcc/testsuite/gcc.dg/pr65658.c gcc/testsuite/gcc.dg/pr65658.c
index cce0f2a..bb5c37a 100644
--- gcc/testsuite/gcc.dg/pr65658.c
+++ gcc/testsuite/gcc.dg/pr65658.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-Wuninitialized -O2 -Wno-implicit" } */
+/* { dg-require-effective-target ptr32plus } */
extern int optind;
struct undefinfo
diff --git gcc/testsuite/gcc.dg/pr67271.c gcc/testsuite/gcc.dg/pr67271.c
index b6988a3..977e253 100644
--- gcc/testsuite/gcc.dg/pr67271.c
+++ gcc/testsuite/gcc.dg/pr67271.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O" } */
+/* { dg-require-effective-target int32plus } */
extern long int labs (long int j);
int
diff --git gcc/testsuite/gcc.dg/pr68112.c gcc/testsuite/gcc.dg/pr68112.c
index 0a45b03..9c7a59c 100644
--- gcc/testsuite/gcc.dg/pr68112.c
+++ gcc/testsuite/gcc.dg/pr68112.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -Waggressive-loop-optimizations" } */
+/* { dg-require-effective-target int32plus } */
int *a;
diff --git gcc/testsuite/gcc.dg/pr69071.c gcc/testsuite/gcc.dg/pr69071.c
index 1a17a94..0396bbc 100644
--- gcc/testsuite/gcc.dg/pr69071.c
+++ gcc/testsuite/gcc.dg/pr69071.c
@@ -1,6 +1,7 @@
/* PR target/69071 */
/* { dg-do compile } */
/* { dg-options "-O2 -g" } */
+/* { dg-skip-if "Array too big" { "avr-*-*" } } */
void *bar (void *);
diff --git gcc/testsuite/gcc.dg/pr69973.c gcc/testsuite/gcc.dg/pr69973.c
index 648bc56..8698954 100644
--- gcc/testsuite/gcc.dg/pr69973.c
+++ gcc/testsuite/gcc.dg/pr69973.c
@@ -1,2 +1,3 @@
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
typedef int v4si __attribute__ ((vector_size (1 << 29)));
diff --git gcc/testsuite/gcc.dg/pr70169.c gcc/testsuite/gcc.dg/pr70169.c
index 8d08f5c..41381e7 100644
--- gcc/testsuite/gcc.dg/pr70169.c
+++ gcc/testsuite/gcc.dg/pr70169.c
@@ -1,6 +1,7 @@
/* PR tree-optimization/70169 */
/* { dg-do compile } */
/* { dg-options "-O2 -fno-strict-aliasing -fno-tree-dce" } */
+/* { dg-skip-if "Program and data reside in different address spaces" { "avr-*-*" } } */
int printf (const char *, ...);
diff --git gcc/testsuite/gcc.dg/sso-6.c gcc/testsuite/gcc.dg/sso-6.c
index 48759b4..e955fa9 100644
--- gcc/testsuite/gcc.dg/sso-6.c
+++ gcc/testsuite/gcc.dg/sso-6.c
@@ -1,6 +1,7 @@
/* Test support of scalar_storage_order pragma */
/* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
#pragma scalar_storage_order /* { dg-warning "missing .big-endian.little-endian.default." } */
diff --git gcc/testsuite/gcc.dg/sso-7.c gcc/testsuite/gcc.dg/sso-7.c
index b4d9d65..51902ab 100644
--- gcc/testsuite/gcc.dg/sso-7.c
+++ gcc/testsuite/gcc.dg/sso-7.c
@@ -2,6 +2,7 @@
/* { dg-do run } */
/* { dg-options "-fsso-struct=big-endian" } */
+/* { dg-require-effective-target int32plus } */
struct S1
{
diff --git gcc/testsuite/gcc.dg/sso-8.c gcc/testsuite/gcc.dg/sso-8.c
index 1938835..5148188 100644
--- gcc/testsuite/gcc.dg/sso-8.c
+++ gcc/testsuite/gcc.dg/sso-8.c
@@ -2,6 +2,7 @@
/* { dg-do run } */
/* { dg-options "-fsso-struct=little-endian" } */
+/* { dg-require-effective-target int32plus } */
struct S1
{
diff --git gcc/testsuite/gcc.dg/vrp-min-max-2.c gcc/testsuite/gcc.dg/vrp-min-max-2.c
index a3ccc66..3936088 100644
--- gcc/testsuite/gcc.dg/vrp-min-max-2.c
+++ gcc/testsuite/gcc.dg/vrp-min-max-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-vrp2" } */
+/* { dg-require-effective-target int32plus } */
int Foo (int X)
{
--
2.7.4