This annotates some tests that won't work for AVR like:
* asm goto with output reload (AVR is not lra).
* Using a program address as a ram address.
* Float related stuff: AVR double is 32-bit, and long double
is incomplete (some functions missing, no signed zeros, etc.)
Applied as obvious.
Johann
--
Skip some tests that won't work for target AVR.
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_lra)
[avr]: Return 0.
* gcc.dg/pr19402-2.c: Skip for avr.
* gcc.dg/pr86124.c: Same.
* gcc.dg/pr94291.c: Same.
* gcc.dg/torture/builtin-complex-1.c: Same.
* gcc.dg/torture/fp-int-convert-float32x-timode.c: Same.
* gcc.dg/torture/fp-int-convert-float32x.c: Same.
* gcc.dg/torture/fp-int-convert-float64-timode.c: Same.
* gcc.dg/torture/fp-int-convert-float64.c: Same.
* gcc.dg/torture/fp-int-convert-long-double.c: Same.
* gcc.dg/torture/fp-int-convert-timode.c: Same.
* c-c++-common/torture/builtin-convertvector-1.c: Same.
* c-c++-common/torture/complex-sign-add.c: Same.
* c-c++-common/torture/complex-sign-mixed-add.c: Same.
* c-c++-common/torture/complex-sign-mixed-div.c: Same.
* c-c++-common/torture/complex-sign-mixed-mul.c: Same.
* c-c++-common/torture/complex-sign-mixed-sub.c: Same.
* c-c++-common/torture/complex-sign-mul-minus-one.c: Same.
* c-c++-common/torture/complex-sign-mul-one.c: Same.
* c-c++-common/torture/complex-sign-mul.c: Same.
* c-c++-common/torture/complex-sign-sub.c: Same.
diff --git
a/gcc/testsuite/c-c++-common/torture/builtin-convertvector-1.c
b/gcc/testsuite/c-c++-common/torture/builtin-convertvector-1.c
index 347dda7692d..fababf1a9eb 100644
--- a/gcc/testsuite/c-c++-common/torture/builtin-convertvector-1.c
+++ b/gcc/testsuite/c-c++-common/torture/builtin-convertvector-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
+
extern
#ifdef __cplusplus
"C"
diff --git a/gcc/testsuite/c-c++-common/torture/complex-sign-add.c
b/gcc/testsuite/c-c++-common/torture/complex-sign-add.c
index e81223224dc..c1e7886a0df 100644
--- a/gcc/testsuite/c-c++-common/torture/complex-sign-add.c
+++ b/gcc/testsuite/c-c++-common/torture/complex-sign-add.c
@@ -2,6 +2,7 @@
addition. */
/* { dg-do run } */
/* { dg-options "-std=gnu99" { target c } } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#include "complex-sign.h"
diff --git a/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-add.c
b/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-add.c
index a209161e157..36d305baf53 100644
--- a/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-add.c
+++ b/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-add.c
@@ -3,6 +3,7 @@
/* { dg-do run } */
/* { dg-options "-std=gnu99" { target c } } */
/* { dg-skip-if "ptx can elide zero additions" { "nvptx-*-*" } { "-O0"
} { "" } } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#include "complex-sign.h"
diff --git a/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-div.c
b/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-div.c
index f7ee48341c0..a37074bb3b9 100644
--- a/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-div.c
+++ b/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-div.c
@@ -2,6 +2,7 @@
division. */
/* { dg-do run } */
/* { dg-options "-std=gnu99" { target c } } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#include "complex-sign.h"
diff --git a/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-mul.c
b/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-mul.c
index 02f936b75bd..1e528b986c5 100644
--- a/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-mul.c
+++ b/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-mul.c
@@ -2,6 +2,7 @@
multiplication. */
/* { dg-do run } */
/* { dg-options "-std=gnu99" { target c } } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#include "complex-sign.h"
diff --git a/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-sub.c
b/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-sub.c
index 02ab4db247c..63c75dfdff2 100644
--- a/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-sub.c
+++ b/gcc/testsuite/c-c++-common/torture/complex-sign-mixed-sub.c
@@ -3,6 +3,7 @@
/* { dg-do run } */
/* { dg-options "-std=gnu99" { target c } } */
/* { dg-skip-if "ptx can elide zero additions" { "nvptx-*-*" } { "-O0"
} { "" } } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#include "complex-sign.h"
diff --git
a/gcc/testsuite/c-c++-common/torture/complex-sign-mul-minus-one.c
b/gcc/testsuite/c-c++-common/torture/complex-sign-mul-minus-one.c
index 05cc4fabea4..f8abdd00e2e 100644
--- a/gcc/testsuite/c-c++-common/torture/complex-sign-mul-minus-one.c
+++ b/gcc/testsuite/c-c++-common/torture/complex-sign-mul-minus-one.c
@@ -2,6 +2,7 @@
multiplication with -1.0 + 0.0i. */
/* { dg-do run } */
/* { dg-options "-std=gnu99" { target c } } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#include "complex-sign.h"
diff --git a/gcc/testsuite/c-c++-common/torture/complex-sign-mul-one.c
b/gcc/testsuite/c-c++-common/torture/complex-sign-mul-one.c
index 014d813e99e..f10248cf6bb 100644
--- a/gcc/testsuite/c-c++-common/torture/complex-sign-mul-one.c
+++ b/gcc/testsuite/c-c++-common/torture/complex-sign-mul-one.c
@@ -2,6 +2,7 @@
multiplication with 1.0 + 0.0i. */
/* { dg-do run } */
/* { dg-options "-std=gnu99" { target c } } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#include "complex-sign.h"
diff --git a/gcc/testsuite/c-c++-common/torture/complex-sign-mul.c
b/gcc/testsuite/c-c++-common/torture/complex-sign-mul.c
index 08d247aa5c0..fc779842885 100644
--- a/gcc/testsuite/c-c++-common/torture/complex-sign-mul.c
+++ b/gcc/testsuite/c-c++-common/torture/complex-sign-mul.c
@@ -2,6 +2,7 @@
multiplication. */
/* { dg-do run } */
/* { dg-options "-std=gnu99" { target c } } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#include "complex-sign.h"
diff --git a/gcc/testsuite/c-c++-common/torture/complex-sign-sub.c
b/gcc/testsuite/c-c++-common/torture/complex-sign-sub.c
index d4da14dc5f5..400bfb8cd67 100644
--- a/gcc/testsuite/c-c++-common/torture/complex-sign-sub.c
+++ b/gcc/testsuite/c-c++-common/torture/complex-sign-sub.c
@@ -2,6 +2,7 @@
subtraction. */
/* { dg-do run } */
/* { dg-options "-std=gnu99" { target c } } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#include "complex-sign.h"
diff --git a/gcc/testsuite/gcc.dg/pr19402-2.c
b/gcc/testsuite/gcc.dg/pr19402-2.c
index 1902227a6e0..24f1d85b58f 100644
--- a/gcc/testsuite/gcc.dg/pr19402-2.c
+++ b/gcc/testsuite/gcc.dg/pr19402-2.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-fno-inline -Os" } */
+/* { dg-skip-if "long double support is incomplete" { "avr-*-*" } } */
void abort(void);
diff --git a/gcc/testsuite/gcc.dg/pr86124.c b/gcc/testsuite/gcc.dg/pr86124.c
index 218b48295f7..c8a66ffbfb4 100644
--- a/gcc/testsuite/gcc.dg/pr86124.c
+++ b/gcc/testsuite/gcc.dg/pr86124.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O -fipa-pta" } */
+/* { dg-skip-if "acessing data memory with program memory address" {
"avr-*-*" } } */
extern void a (void);
diff --git a/gcc/testsuite/gcc.dg/pr94291.c b/gcc/testsuite/gcc.dg/pr94291.c
index 7daa2b01166..7d9331b391f 100644
--- a/gcc/testsuite/gcc.dg/pr94291.c
+++ b/gcc/testsuite/gcc.dg/pr94291.c
@@ -1,6 +1,7 @@
/* PR rtl-optimization/94291 */
/* { dg-do compile } */
/* { dg-options "-Og" } */
+/* { dg-skip-if "accessing data memory with program memory address" {
"avr-*-*" } } */
unsigned a;
diff --git a/gcc/testsuite/gcc.dg/torture/builtin-complex-1.c
b/gcc/testsuite/gcc.dg/torture/builtin-complex-1.c
index f0d3dd32cf5..8dc91a555a2 100644
--- a/gcc/testsuite/gcc.dg/torture/builtin-complex-1.c
+++ b/gcc/testsuite/gcc.dg/torture/builtin-complex-1.c
@@ -3,6 +3,7 @@
/* { dg-options "-std=c11 -pedantic-errors" } */
/* { dg-require-effective-target inf } */
/* { dg-add-options ieee } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
extern void exit (int);
extern void abort (void);
diff --git
a/gcc/testsuite/gcc.dg/torture/fp-int-convert-float32x-timode.c
b/gcc/testsuite/gcc.dg/torture/fp-int-convert-float32x-timode.c
index c3d3fa9ff7d..c9ed42ca31f 100644
--- a/gcc/testsuite/gcc.dg/torture/fp-int-convert-float32x-timode.c
+++ b/gcc/testsuite/gcc.dg/torture/fp-int-convert-float32x-timode.c
@@ -3,6 +3,7 @@
/* { dg-options "" } */
/* { dg-add-options float32x } */
/* { dg-require-effective-target float32x_runtime } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#define __STDC_WANT_IEC_60559_TYPES_EXT__
#include <float.h>
diff --git a/gcc/testsuite/gcc.dg/torture/fp-int-convert-float32x.c
b/gcc/testsuite/gcc.dg/torture/fp-int-convert-float32x.c
index 8ea2eafe2f3..e799e9c3360 100644
--- a/gcc/testsuite/gcc.dg/torture/fp-int-convert-float32x.c
+++ b/gcc/testsuite/gcc.dg/torture/fp-int-convert-float32x.c
@@ -3,6 +3,7 @@
/* { dg-options "" } */
/* { dg-add-options float32x } */
/* { dg-require-effective-target float32x_runtime } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#define __STDC_WANT_IEC_60559_TYPES_EXT__
#include <float.h>
diff --git
a/gcc/testsuite/gcc.dg/torture/fp-int-convert-float64-timode.c
b/gcc/testsuite/gcc.dg/torture/fp-int-convert-float64-timode.c
index ecefa8120b8..16b4429805c 100644
--- a/gcc/testsuite/gcc.dg/torture/fp-int-convert-float64-timode.c
+++ b/gcc/testsuite/gcc.dg/torture/fp-int-convert-float64-timode.c
@@ -3,6 +3,7 @@
/* { dg-options "" } */
/* { dg-add-options float64 } */
/* { dg-require-effective-target float64_runtime } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#define __STDC_WANT_IEC_60559_TYPES_EXT__
#include <float.h>
diff --git a/gcc/testsuite/gcc.dg/torture/fp-int-convert-float64.c
b/gcc/testsuite/gcc.dg/torture/fp-int-convert-float64.c
index 196d611493f..68d3363d5f4 100644
--- a/gcc/testsuite/gcc.dg/torture/fp-int-convert-float64.c
+++ b/gcc/testsuite/gcc.dg/torture/fp-int-convert-float64.c
@@ -3,6 +3,7 @@
/* { dg-options "" } */
/* { dg-add-options float64 } */
/* { dg-require-effective-target float64_runtime } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#define __STDC_WANT_IEC_60559_TYPES_EXT__
#include <float.h>
diff --git a/gcc/testsuite/gcc.dg/torture/fp-int-convert-long-double.c
b/gcc/testsuite/gcc.dg/torture/fp-int-convert-long-double.c
index d8e5197f1d3..9492bc23c8f 100644
--- a/gcc/testsuite/gcc.dg/torture/fp-int-convert-long-double.c
+++ b/gcc/testsuite/gcc.dg/torture/fp-int-convert-long-double.c
@@ -2,6 +2,7 @@
/* Origin: Joseph Myers <jos...@codesourcery.com> */
/* { dg-do run } */
/* { dg-options "" } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#include <float.h>
#include "fp-int-convert.h"
diff --git a/gcc/testsuite/gcc.dg/torture/fp-int-convert-timode.c
b/gcc/testsuite/gcc.dg/torture/fp-int-convert-timode.c
index 0ef3e545465..2fe3faab585 100644
--- a/gcc/testsuite/gcc.dg/torture/fp-int-convert-timode.c
+++ b/gcc/testsuite/gcc.dg/torture/fp-int-convert-timode.c
@@ -2,6 +2,7 @@
/* Origin: Joseph Myers <jos...@codesourcery.com> */
/* { dg-do run } */
/* { dg-options "" } */
+/* { dg-skip-if "double support is incomplete" { "avr-*-*" } } */
#include <float.h>
#include "fp-int-convert.h"
diff --git a/gcc/testsuite/lib/target-supports.exp
b/gcc/testsuite/lib/target-supports.exp
index 95cbb1afa16..bd9f432e4a7 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -12267,7 +12267,7 @@ proc check_effective_target_o_flag_in_section { } {
# return 1 if LRA is supported.
proc check_effective_target_lra { } {
- if { [istarget hppa*-*-*] || [istarget cris-*-*] } {
+ if { [istarget hppa*-*-*] || [istarget cris-*-*] || [istarget
avr-*-*] } {
return 0
}
return 1