From 37d168aedcc08d271bf5546288be7ad18d4def5e Mon Sep 17 00:00:00 2001 From: Senthil Kumar Selvaraj Date: Wed, 21 Sep 2016 06:03:32 +0000 Subject: [PATCH] Make integer size explicit For the lower vrp bound to be 2/-2, unsigned ints must be 4 bytes wide. This breaks targets like avr. Explicitly using __UINT32_TYPE__ (behind a typedef) makes the testcase pass for all targets. gcc/testsuite/ChangeLog: 2016-09-21 Senthil Kumar Selvaraj * gcc.dg/tree-ssa/pr64130.c: Use __UINT32_TYPE__ instead of int. From-SVN: r240300 --- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.dg/tree-ssa/pr64130.c | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e05a76e4c18..2f5518f5339 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2016-09-21 Senthil Kumar Selvaraj + + * gcc.dg/tree-ssa/pr64130.c: Use __UINT32_TYPE__ instead of int. + 2016-09-21 Kugan Vivekanandarajah PR tree-optimization/72835 diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr64130.c b/gcc/testsuite/gcc.dg/tree-ssa/pr64130.c index f39bd179a8c..e068765e2fc 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr64130.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr64130.c @@ -2,12 +2,14 @@ /* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-evrp" } */ -int funsigned (unsigned a) +__extension__ typedef __UINT32_TYPE__ uint32_t; + +int funsigned (uint32_t a) { return 0x1ffffffffL / a == 0; } -int funsigned2 (unsigned a) +int funsigned2 (uint32_t a) { if (a < 1) return 1; return (-1 * 0x1ffffffffL) / a == 0; -- 2.30.2