/* { dg-do compile } */
/* { dg-options "-O2 -Wall" } */
-typedef long unsigned int size_t;
+typedef __SIZE_TYPE__ size_t;
extern void *realloc (void *__ptr, size_t __size)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
struct vector_objective;
/* { dg-do compile } */
/* { dg-options "-std=c23" } */
+/* { dg-require-effective-target int32plus } */
struct bar0 { int r : 16; };
struct bar0 { int r : 16; };
#include <stdlib.h>
+typedef __UINTPTR_TYPE__ uintptr_t;
+
struct annotated {
int b;
char c[] __attribute__ ((counted_by (b)));
if (__alignof (array_nested_annotated->c) != __alignof (char))
abort ();
- if ((unsigned long) array_annotated->c != (unsigned long) &array_annotated->c)
+ if ((uintptr_t) array_annotated->c != (uintptr_t) &array_annotated->c)
abort ();
- if ((unsigned long) array_nested_annotated->c
- != (unsigned long) &array_nested_annotated->c)
+ if ((uintptr_t) array_nested_annotated->c
+ != (uintptr_t) &array_nested_annotated->c)
abort ();
array_annotated->c[2] = a;
/* { dg-lto-do link } */
/* { dg-lto-options { { -Wodr -flto } } } */
-struct foo { int x; };
+struct foo { __INT32_TYPE__ x; };
struct foo a = {};
-struct foo { short x; };
+struct foo { __INT16_TYPE__ x; };
extern struct foo a; /* { dg-lto-warning {type of 'a' does not match original declaration} } */
struct foo *ptr = &a;
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-evrp" } */
+/* { dg-require-effective-target int32plus } */
unsigned mul(unsigned char c) {
if (c > 3) __builtin_unreachable();
int is_trampoline (void* function) /* { dg-bogus "arrays of functions are not meaningful" } */
{
void* tramp_address = tramp;
- if (!(((unsigned long)function & 3) == 2))
+ if (!(((__UINTPTR_TYPE__)function & 3) == 2))
return 0;
return (((long *) ((char*)function - 2))[0]
== ((long *) ((char*)tramp_address-2))[0]); /* { dg-warning "outside array bounds" } */
}
+/* { dg-warning "accessing data memory with program memory address.*" "" { target avr-*-* } .-2 } */
/* { dg-do compile } */
/* { dg-options "-g" } */
+/* { dg-require-effective-target int32plus } */
struct {
struct {
/* { dg-do run } */
/* { dg-options "-std=gnu11" } */
+/* { dg-require-effective-target double64 } */
typedef double v2df __attribute__((vector_size(2 * sizeof (double))));
-typedef long long v2di __attribute__((vector_size(2 * sizeof (long long))));
+typedef __INT64_TYPE__ v2di __attribute__((vector_size(2 * sizeof (__INT64_TYPE__))));
void foo (v2df *res, v2df *src)
{
/* { dg-do compile } */
/* { dg-additional-options "-fexcess-precision=fast -O1 -fdump-tree-optimized" } */
+/* { dg-require-effective-target double64plus } */
+
void foo (float a, float b, float *c)
{
double e = (double)a * (double)b;