Fix broken tests for avr target

These tests assume {unsigned,} ints are 32 bits or wider. Explicitly
specify __{U}INT32_TYPE__ for targets with __SIZEOF_INT__ < 4.

gcc/testsuite/

2017-03-28  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* gcc.c-torture/execute/pr79121.c:Use __{U}INT32_TYPE__ for targets
	with sizeof(int) < 4.
	* gcc.c-torture/execute/pr79737-1.c (struct S): Likewise.
	* gcc.c-torture/execute/pr79737-2.c: Likewise.
	* gcc.dg/torture/pr79777.c: Likewise.
	* gcc.dg/torture/pr79910.c: Likewise.

From-SVN: r246529
This commit is contained in:
Senthil Kumar Selvaraj 2017-03-28 10:55:18 +00:00 committed by Senthil Kumar Selvaraj
parent 41f447177c
commit 17722fb9e6
6 changed files with 55 additions and 17 deletions

View File

@ -1,3 +1,12 @@
2017-03-28 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* gcc.c-torture/execute/pr79121.c:Use __{U}INT32_TYPE__ for targets
with sizeof(int) < 4.
* gcc.c-torture/execute/pr79737-1.c (struct S): Likewise.
* gcc.c-torture/execute/pr79737-2.c: Likewise.
* gcc.dg/torture/pr79777.c: Likewise.
* gcc.dg/torture/pr79910.c: Likewise.
2017-03-28 Richard Biener <rguenther@suse.de>
PR middle-end/80222

View File

@ -1,21 +1,29 @@
#if __SIZEOF_INT__ < 4
__extension__ typedef __UINT32_TYPE__ uint32_t;
__extension__ typedef __INT32_TYPE__ int32_t;
#else
typedef unsigned uint32_t;
typedef int int32_t;
#endif
extern void abort (void);
__attribute__ ((noinline, noclone)) unsigned long long f1 (int x)
__attribute__ ((noinline, noclone)) unsigned long long f1 (int32_t x)
{
return ((unsigned long long) x) << 4;
}
__attribute__ ((noinline, noclone)) long long f2 (unsigned x)
__attribute__ ((noinline, noclone)) long long f2 (uint32_t x)
{
return ((long long) x) << 4;
}
__attribute__ ((noinline, noclone)) unsigned long long f3 (unsigned x)
__attribute__ ((noinline, noclone)) unsigned long long f3 (uint32_t x)
{
return ((unsigned long long) x) << 4;
}
__attribute__ ((noinline, noclone)) long long f4 (int x)
__attribute__ ((noinline, noclone)) long long f4 (int32_t x)
{
return ((long long) x) << 4;
}

View File

@ -1,13 +1,19 @@
/* PR tree-optimization/79737 */
#if __SIZEOF_INT__ < 4
__extension__ typedef __INT32_TYPE__ int32_t;
#else
typedef int int32_t;
#endif
#pragma pack(1)
struct S
{
int b:18;
int c:1;
int d:24;
int e:15;
int f:14;
int32_t b:18;
int32_t c:1;
int32_t d:24;
int32_t e:15;
int32_t f:14;
} i;
int g, j, k;
static struct S h;

View File

@ -1,13 +1,19 @@
/* PR tree-optimization/79737 */
#if __SIZEOF_INT__ < 4
__extension__ typedef __INT32_TYPE__ int32_t;
#else
typedef int int32_t;
#endif
#pragma pack(1)
struct S
{
int b:18;
int c:1;
int d:24;
int e:15;
int f:14;
int32_t b:18;
int32_t c:1;
int32_t d:24;
int32_t e:15;
int32_t f:14;
} i, j;
void

View File

@ -1,9 +1,14 @@
/* { dg-do compile } */
typedef unsigned short __u16;
typedef unsigned int __u32;
#if __SIZEOF_INT__ < 4
__extension__ typedef __UINT32_TYPE__ __u32;
__extension__ typedef __UINT32_TYPE__ u32;
#else
typedef unsigned int __u32;
typedef unsigned int u32;
#endif
typedef unsigned char u8;
typedef unsigned int u32;
typedef __u16 __le16;
typedef __u32 __le32;
typedef u32 secno;

View File

@ -2,7 +2,11 @@
/* { dg-additional-options "-fweb" } */
typedef unsigned char u8;
typedef unsigned int u32;
#if __SIZEOF_INT__ < 4
__extension__ typedef __UINT32_TYPE__ u32;
#else
typedef unsigned int u32;
#endif
typedef unsigned long long u64;
int a;