From 17722fb9e6f8c79c7016c68ea359d6fe2dd5aadd Mon Sep 17 00:00:00 2001
From: Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
Date: Tue, 28 Mar 2017 10:55:18 +0000
Subject: [PATCH] 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
---
 gcc/testsuite/ChangeLog                         |  9 +++++++++
 gcc/testsuite/gcc.c-torture/execute/pr79121.c   | 16 ++++++++++++----
 gcc/testsuite/gcc.c-torture/execute/pr79737-1.c | 16 +++++++++++-----
 gcc/testsuite/gcc.c-torture/execute/pr79737-2.c | 16 +++++++++++-----
 gcc/testsuite/gcc.dg/torture/pr79777.c          |  9 +++++++--
 gcc/testsuite/gcc.dg/torture/pr79910.c          |  6 +++++-
 6 files changed, 55 insertions(+), 17 deletions(-)

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4abe1dc0cfaf..fe42af1b3bbf 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr79121.c b/gcc/testsuite/gcc.c-torture/execute/pr79121.c
index 9fca7fbded6b..5593acc7d297 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr79121.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr79121.c
@@ -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;
 }
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr79737-1.c b/gcc/testsuite/gcc.c-torture/execute/pr79737-1.c
index 05e392c116d8..f7fa5f9ea9b7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr79737-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr79737-1.c
@@ -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;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr79737-2.c b/gcc/testsuite/gcc.c-torture/execute/pr79737-2.c
index 37b991e15056..56a6ad8f663b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr79737-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr79737-2.c
@@ -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
diff --git a/gcc/testsuite/gcc.dg/torture/pr79777.c b/gcc/testsuite/gcc.dg/torture/pr79777.c
index eb1bec776e23..40d6740d2a44 100644
--- a/gcc/testsuite/gcc.dg/torture/pr79777.c
+++ b/gcc/testsuite/gcc.dg/torture/pr79777.c
@@ -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;
diff --git a/gcc/testsuite/gcc.dg/torture/pr79910.c b/gcc/testsuite/gcc.dg/torture/pr79910.c
index 5fe80aee1446..280dda1a49fb 100644
--- a/gcc/testsuite/gcc.dg/torture/pr79910.c
+++ b/gcc/testsuite/gcc.dg/torture/pr79910.c
@@ -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;
 
-- 
GitLab