@@ -8,4 +8,5 @@ void do_div (_Complex double *a, _Complex double *b)
*a = *b / (4.0 - 5.0fi);
}
-/* { dg-final { scan-tree-dump "__(?:gnu_)?divdc3" "optimized" } } */
+/* { dg-final { scan-tree-dump "__(?:gnu_)?divdc3" "optimized" { target { ! { avr-*-* } } } } } */
+/* { dg-final { scan-tree-dump "__(?:gnu_)?divsc3" "optimized" { target { avr-*-* } } } } */
@@ -3,7 +3,7 @@
This testcase checks that warn_compare_distinct_pointer_types is enabled by
default. */
-typedef int __u32;
+typedef __INT32_TYPE__ __u32;
struct xdp_md
{
@@ -13,8 +13,8 @@ struct xdp_md
int xdp_context (struct xdp_md *xdp)
{
- void *data = (void *)(long)xdp->data;
- __u32 *metadata = (void *)(long)xdp->data_meta;
+ void *data = (void *)(__INTPTR_TYPE__)xdp->data;
+ __u32 *metadata = (void *)(__INTPTR_TYPE__)xdp->data_meta;
__u32 ret;
if (metadata + 1 > data) /* { dg-warning "comparison of distinct pointer types" } */
@@ -1,7 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-Wcompare-distinct-pointer-types" } */
-typedef int __u32;
+typedef __INT32_TYPE__ __u32;
struct xdp_md
{
@@ -11,8 +11,8 @@ struct xdp_md
int xdp_context (struct xdp_md *xdp)
{
- void *data = (void *)(long)xdp->data;
- __u32 *metadata = (void *)(long)xdp->data_meta;
+ void *data = (void *)(__INTPTR_TYPE__)xdp->data;
+ __u32 *metadata = (void *)(__INTPTR_TYPE__)xdp->data_meta;
__u32 ret;
if (metadata + 1 > data) /* { dg-warning "comparison of distinct pointer types" } */
@@ -1,7 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-O0 -Wno-compare-distinct-pointer-types" } */
-typedef int __u32;
+typedef __INT32_TYPE__ __u32;
struct xdp_md
{
@@ -11,8 +11,8 @@ struct xdp_md
int xdp_context (struct xdp_md *xdp)
{
- void *data = (void *)(long)xdp->data;
- __u32 *metadata = (void *)(long)xdp->data_meta;
+ void *data = (void *)(__INTPTR_TYPE__)xdp->data;
+ __u32 *metadata = (void *)(__INTPTR_TYPE__)xdp->data_meta;
__u32 ret;
if (metadata + 1 > data) /* There shouldn't be a warning here. */
@@ -1,5 +1,5 @@
struct S {
- int i : 24;
+ __INT32_TYPE__ i : 24;
char c1 : 1;
char c2 : 1;
char c3 : 1;
@@ -5,7 +5,7 @@
#endif
struct S {
- int i : 24;
+ __INT32_TYPE__ i : 24;
char c1 : 1;
char c2 : 1;
char c3 : 1;
@@ -1,3 +1,4 @@
+/* { dg-require-effective-target int32plus } */
/* PR tree-opt/109938 */
#include "../../gcc.dg/tree-ssa/pr109938.c"
@@ -1,3 +1,4 @@
+/* { dg-require-effective-target int32plus } */
/* PR middle-end/109986 */
#include "../../gcc.dg/tree-ssa/pr109986.c"
@@ -1,6 +1,10 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-optimized" } */
+#if __SIZEOF_INT__ < 4
+#define int __INT32_TYPE__
+#endif
+
int test_s32_0_1(int x) { return __builtin_bswap32(x) & 1; }
int test_s32_0_2(int x) { return __builtin_bswap32(x) & 2; }
int test_s32_0_240(int x) { return __builtin_bswap32(x) & 240; }
@@ -5,11 +5,11 @@ extern void abort (void);
__attribute__ ((noinline, noclone))
-static int rt32 (int x, int y, int z) {
+static __INT32_TYPE__ rt32 (__INT32_TYPE__ x, int y, __INT32_TYPE__ z) {
return (__builtin_bswap32(x) >> y) & z;
}
#define TEST32(X,Y,Z) if(((__builtin_bswap32(X)>>Y)&Z)!=rt32(X,Y,Z)) abort()
-void test32(int x)
+void test32(__INT32_TYPE__ x)
{
TEST32(x,0,1);
TEST32(x,0,255);
@@ -3,6 +3,7 @@
/* { dg-options "-std=c23 -pedantic-errors" } */
/* { dg-add-options ieee } */
/* { dg-require-effective-target inff } */
+/* { dg-require-effective-target large_double } */
/* A conversion from signaling NaN to quiet NaN in a different format or type
is not valid for constexpr. */
@@ -2,6 +2,7 @@
/* { dg-do run } */
// { dg-require-effective-target thread_fence }
/* { dg-options "-std=c23 -pedantic-errors -Wall -Wextra -Wno-unused-variable" } */
+/* { dg-xfail-if "__atomic not supported" { "avr-*-*" } } */
#include <stdarg.h>
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-require-effective-target int32plus } */
unsigned int test_ior(unsigned char i)
{
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-require-effective-target int32plus } */
unsigned int test_ior(unsigned char i)
{
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-require-effective-target int32plus } */
int test_and4(unsigned int a)
{
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-require-effective-target int32plus } */
int test_and4(unsigned int a)
{
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -funswitch-loops -fdump-tree-unswitch-optimized" } */
+/* { dg-require-effective-target size32plus } */
int
__attribute__((noipa))
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -funswitch-loops -fdump-tree-unswitch-optimized" } */
+/* { dg-require-effective-target int32 } */
int
foo(double *a, double *b, double *c, double *d, double *r, int size, int order)
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -funswitch-loops -fdump-tree-unswitch-optimized --param=max-unswitch-insns=1000" } */
+/* { dg-require-effective-target size32plus } */
int
__attribute__((noipa))
@@ -46,8 +46,8 @@ void __attribute__((__noinline__)) stuff(
struct trailing_array_3 *trailing_0,
struct trailing_array_4 *trailing_flex)
{
- expect(__builtin_object_size(normal->c, 1), 16);
- expect(__builtin_object_size(trailing_1->c, 1), 4);
+ expect(__builtin_object_size(normal->c, 1), 4 * __SIZEOF_INT__);
+ expect(__builtin_object_size(trailing_1->c, 1), __SIZEOF_INT__);
expect(__builtin_object_size(trailing_0->c, 1), 0);
expect(__builtin_object_size(trailing_flex->c, 1), -1);
}
@@ -46,8 +46,8 @@ void __attribute__((__noinline__)) stuff(
struct trailing_array_3 *trailing_0,
struct trailing_array_4 *trailing_flex)
{
- expect(__builtin_object_size(normal->c, 1), 16);
- expect(__builtin_object_size(trailing_1->c, 1), 4);
+ expect(__builtin_object_size(normal->c, 1), 4 * __SIZEOF_INT__);
+ expect(__builtin_object_size(trailing_1->c, 1), __SIZEOF_INT__);
expect(__builtin_object_size(trailing_0->c, 1), 0);
expect(__builtin_object_size(trailing_flex->c, 1), -1);
}
@@ -46,8 +46,8 @@ void __attribute__((__noinline__)) stuff(
struct trailing_array_3 *trailing_0,
struct trailing_array_4 *trailing_flex)
{
- expect(__builtin_object_size(normal->c, 1), 16);
- expect(__builtin_object_size(trailing_1->c, 1), 4);
+ expect(__builtin_object_size(normal->c, 1), 4 * __SIZEOF_INT__);
+ expect(__builtin_object_size(trailing_1->c, 1), __SIZEOF_INT__);
expect(__builtin_object_size(trailing_0->c, 1), -1);
expect(__builtin_object_size(trailing_flex->c, 1), -1);
}
@@ -46,7 +46,7 @@ void __attribute__((__noinline__)) stuff(
struct trailing_array_3 *trailing_0,
struct trailing_array_4 *trailing_flex)
{
- expect(__builtin_object_size(normal->c, 1), 16);
+ expect(__builtin_object_size(normal->c, 1), 4 * __SIZEOF_INT__);
expect(__builtin_object_size(trailing_1->c, 1), -1);
expect(__builtin_object_size(trailing_0->c, 1), -1);
expect(__builtin_object_size(trailing_flex->c, 1), -1);