On 21.03.2017 13:31, Georg-Johann Lay wrote:
On 21.03.2017 13:07, Senthil Kumar Selvaraj wrote:
Hi,
The test assumes 32 bit ints, and expects a constant in the
dump that is only valid for 32 bit ints. This trivial patch
fixes that by explicitly specifying __UINT32_TYPE__ as the type.
Committed as obvious.
Regards
Senthil
gcc/testsuite/ChangeLog
2017-03-21 Senthil Kumar Selvaraj <senthil_kumar.selva...@atmel.com>
* gcc.dg/tree-ssa/overflow-1.c: Use __UINT32_TYPE__ for targets
with sizeof(int) < 4.
diff --git gcc/testsuite/gcc.dg/tree-ssa/overflow-1.c
gcc/testsuite/gcc.dg/tree-ssa/overflow-1.c
index e126609c53d9..b664d0f120aa 100644
--- gcc/testsuite/gcc.dg/tree-ssa/overflow-1.c
+++ gcc/testsuite/gcc.dg/tree-ssa/overflow-1.c
@@ -1,14 +1,20 @@
/* { dg-do compile } */
/* { dg-options "-O -fdump-tree-optimized" } */
-int f(unsigned a){
- unsigned b=5;
- unsigned c=a-b;
+#if __SIZEOF_INT__ < 4
+ __extension__ typedef __UINT32_TYPE__ uint32_t;
+#else
+ typedef unsigned uint32_t;
Dunno if this matters, but it changes the test for 64-bit int.
argh, forget my comment :-)
Johann
+#endif
+
+int f(uint32_t a){
+ uint32_t b=5;
+ uint32_t c=a-b;
return c>a;
}
-int g(unsigned a){
- unsigned b=32;
- unsigned c=a+b;
+int g(uint32_t a){
+ uint32_t b=32;
+ uint32_t c=a+b;
return c<a;
}