Commit 743a9cf7 by Senthil Kumar Selvaraj Committed by Senthil Kumar Selvaraj

Fix pr69941.c test failure for avr

The test assumes ints are atleast 32 bits wide. For the avr
target, ints are 16 bits wide. This leads VRP to conclude
that a right shift by 9 followed by an equality comparison 
to 0x74 can never be true. VRP eliminates the conditional, and
the code ends up unconditionally calling __builtin_abort.

Fixed the testcase to use __INT32_TYPE__ for targets with less
than 32 bit wide integers, wherever the size happens to be
significant.

gcc/testsuite/ChangeLog

2016-10-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

        * gcc.dg/torture/pr69941.c: Use __INT32_TYPE__ instead
        of int if __SIZEOF_INT__ is less than 4 bytes.

From-SVN: r240795
parent a40278c3
2016-10-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* gcc.dg/torture/pr69941.c: Use __INT32_TYPE__ instead
of int if __SIZEOF_INT__ is less than 4 bytes.
2016-10-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
* gfortran.dg/dtio_15.f90: Fix spaces in dg-do.
......
/* { dg-do run } */
#if __SIZEOF_INT__ < 4
__extension__ typedef __INT32_TYPE__ int32_t;
#else
typedef int int32_t;
#endif
int a = 0;
int b = 0;
int c = 0;
int e = 0;
int32_t e = 0;
int f = 0;
int *g = &e;
int32_t *g = &e;
int fn1() { return b ? a : b; }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment