diff mbox

[testsuite] Fix failing overflow-1.c for avr

Message ID 874lymde95.fsf@microchip.com
State New
Headers show

Commit Message

Senthil Kumar Selvaraj March 21, 2017, 12:07 p.m. UTC
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.selvaraj@atmel.com>

	* gcc.dg/tree-ssa/overflow-1.c: Use __UINT32_TYPE__ for targets
 	with sizeof(int) < 4.

Comments

Georg-Johann Lay March 21, 2017, 12:31 p.m. UTC | #1
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.selvaraj@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.

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;
>  }
>
>
Georg-Johann Lay March 21, 2017, 12:34 p.m. UTC | #2
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.selvaraj@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;
>>  }
>>
>>
>
>
diff mbox

Patch

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;
+#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;
 }