testsuite: Adjust pr113359-2_*.c with unsigned long long [PR114662]

Message ID 7f06fb28-fc72-82fe-a686-132dd08784a2@linux.ibm.com
State New
Headers
Series testsuite: Adjust pr113359-2_*.c with unsigned long long [PR114662] |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gcc_build--master-arm warning Patch is already merged
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 warning Patch is already merged

Commit Message

Kewen.Lin April 10, 2024, 6:24 a.m. UTC
  Hi,

pr113359-2_*.c define a struct having unsigned long type
members ay and az which have 4 bytes size at -m32, while
the related constants CL1 and CL2 used for equality check
are always 8 bytes, it makes compiler consider the below

  69   if (a.ay != CL1)
  70     __builtin_abort ();

always to abort and optimize away the following call to
getb, which leads to the expected wpa dumping on
"Semantic equality" missing.

This patch is to modify the types with unsigned long long
accordingly.  Tested well on powerpc64-linux-gnu.

Is it ok for trunk?

BR,
Kewen
-----
	PR testsuite/114662

gcc/testsuite/ChangeLog:

	* gcc.dg/lto/pr113359-2_0.c: Use unsigned long long instead of
	unsigned long.
	* gcc.dg/lto/pr113359-2_1.c: Likewise.
---
 gcc/testsuite/gcc.dg/lto/pr113359-2_0.c | 8 ++++----
 gcc/testsuite/gcc.dg/lto/pr113359-2_1.c | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

--
2.43.0
  

Comments

Richard Biener April 10, 2024, 7:11 a.m. UTC | #1
On Wed, Apr 10, 2024 at 8:24 AM Kewen.Lin <linkw@linux.ibm.com> wrote:
>
> Hi,
>
> pr113359-2_*.c define a struct having unsigned long type
> members ay and az which have 4 bytes size at -m32, while
> the related constants CL1 and CL2 used for equality check
> are always 8 bytes, it makes compiler consider the below
>
>   69   if (a.ay != CL1)
>   70     __builtin_abort ();
>
> always to abort and optimize away the following call to
> getb, which leads to the expected wpa dumping on
> "Semantic equality" missing.
>
> This patch is to modify the types with unsigned long long
> accordingly.  Tested well on powerpc64-linux-gnu.
>
> Is it ok for trunk?

OK

> BR,
> Kewen
> -----
>         PR testsuite/114662
>
> gcc/testsuite/ChangeLog:
>
>         * gcc.dg/lto/pr113359-2_0.c: Use unsigned long long instead of
>         unsigned long.
>         * gcc.dg/lto/pr113359-2_1.c: Likewise.
> ---
>  gcc/testsuite/gcc.dg/lto/pr113359-2_0.c | 8 ++++----
>  gcc/testsuite/gcc.dg/lto/pr113359-2_1.c | 8 ++++----
>  2 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/gcc/testsuite/gcc.dg/lto/pr113359-2_0.c b/gcc/testsuite/gcc.dg/lto/pr113359-2_0.c
> index 8b2d5bdfab2..8495667599d 100644
> --- a/gcc/testsuite/gcc.dg/lto/pr113359-2_0.c
> +++ b/gcc/testsuite/gcc.dg/lto/pr113359-2_0.c
> @@ -8,15 +8,15 @@
>  struct SA
>  {
>    unsigned int ax;
> -  unsigned long ay;
> -  unsigned long az;
> +  unsigned long long ay;
> +  unsigned long long az;
>  };
>
>  struct SB
>  {
>    unsigned int bx;
> -  unsigned long by;
> -  unsigned long bz;
> +  unsigned long long by;
> +  unsigned long long bz;
>  };
>
>  struct ZA
> diff --git a/gcc/testsuite/gcc.dg/lto/pr113359-2_1.c b/gcc/testsuite/gcc.dg/lto/pr113359-2_1.c
> index 61bc0547981..8320f347efe 100644
> --- a/gcc/testsuite/gcc.dg/lto/pr113359-2_1.c
> +++ b/gcc/testsuite/gcc.dg/lto/pr113359-2_1.c
> @@ -5,15 +5,15 @@
>  struct SA
>  {
>    unsigned int ax;
> -  unsigned long ay;
> -  unsigned long az;
> +  unsigned long long ay;
> +  unsigned long long az;
>  };
>
>  struct SB
>  {
>    unsigned int bx;
> -  unsigned long by;
> -  unsigned long bz;
> +  unsigned long long by;
> +  unsigned long long bz;
>  };
>
>  struct ZA
> --
> 2.43.0
  
Kewen.Lin April 10, 2024, 8:04 a.m. UTC | #2
on 2024/4/10 15:11, Richard Biener wrote:
> On Wed, Apr 10, 2024 at 8:24 AM Kewen.Lin <linkw@linux.ibm.com> wrote:
>>
>> Hi,
>>
>> pr113359-2_*.c define a struct having unsigned long type
>> members ay and az which have 4 bytes size at -m32, while
>> the related constants CL1 and CL2 used for equality check
>> are always 8 bytes, it makes compiler consider the below
>>
>>   69   if (a.ay != CL1)
>>   70     __builtin_abort ();
>>
>> always to abort and optimize away the following call to
>> getb, which leads to the expected wpa dumping on
>> "Semantic equality" missing.
>>
>> This patch is to modify the types with unsigned long long
>> accordingly.  Tested well on powerpc64-linux-gnu.
>>
>> Is it ok for trunk?
> 
> OK

Thanks!  Pushed as r14-9886.

BR,
Kewen

> 
>> BR,
>> Kewen
>> -----
>>         PR testsuite/114662
>>
>> gcc/testsuite/ChangeLog:
>>
>>         * gcc.dg/lto/pr113359-2_0.c: Use unsigned long long instead of
>>         unsigned long.
>>         * gcc.dg/lto/pr113359-2_1.c: Likewise.
>> ---
>>  gcc/testsuite/gcc.dg/lto/pr113359-2_0.c | 8 ++++----
>>  gcc/testsuite/gcc.dg/lto/pr113359-2_1.c | 8 ++++----
>>  2 files changed, 8 insertions(+), 8 deletions(-)
>>
>> diff --git a/gcc/testsuite/gcc.dg/lto/pr113359-2_0.c b/gcc/testsuite/gcc.dg/lto/pr113359-2_0.c
>> index 8b2d5bdfab2..8495667599d 100644
>> --- a/gcc/testsuite/gcc.dg/lto/pr113359-2_0.c
>> +++ b/gcc/testsuite/gcc.dg/lto/pr113359-2_0.c
>> @@ -8,15 +8,15 @@
>>  struct SA
>>  {
>>    unsigned int ax;
>> -  unsigned long ay;
>> -  unsigned long az;
>> +  unsigned long long ay;
>> +  unsigned long long az;
>>  };
>>
>>  struct SB
>>  {
>>    unsigned int bx;
>> -  unsigned long by;
>> -  unsigned long bz;
>> +  unsigned long long by;
>> +  unsigned long long bz;
>>  };
>>
>>  struct ZA
>> diff --git a/gcc/testsuite/gcc.dg/lto/pr113359-2_1.c b/gcc/testsuite/gcc.dg/lto/pr113359-2_1.c
>> index 61bc0547981..8320f347efe 100644
>> --- a/gcc/testsuite/gcc.dg/lto/pr113359-2_1.c
>> +++ b/gcc/testsuite/gcc.dg/lto/pr113359-2_1.c
>> @@ -5,15 +5,15 @@
>>  struct SA
>>  {
>>    unsigned int ax;
>> -  unsigned long ay;
>> -  unsigned long az;
>> +  unsigned long long ay;
>> +  unsigned long long az;
>>  };
>>
>>  struct SB
>>  {
>>    unsigned int bx;
>> -  unsigned long by;
>> -  unsigned long bz;
>> +  unsigned long long by;
>> +  unsigned long long bz;
>>  };
>>
>>  struct ZA
>> --
>> 2.43.0
  

Patch

diff --git a/gcc/testsuite/gcc.dg/lto/pr113359-2_0.c b/gcc/testsuite/gcc.dg/lto/pr113359-2_0.c
index 8b2d5bdfab2..8495667599d 100644
--- a/gcc/testsuite/gcc.dg/lto/pr113359-2_0.c
+++ b/gcc/testsuite/gcc.dg/lto/pr113359-2_0.c
@@ -8,15 +8,15 @@ 
 struct SA
 {
   unsigned int ax;
-  unsigned long ay;
-  unsigned long az;
+  unsigned long long ay;
+  unsigned long long az;
 };

 struct SB
 {
   unsigned int bx;
-  unsigned long by;
-  unsigned long bz;
+  unsigned long long by;
+  unsigned long long bz;
 };

 struct ZA
diff --git a/gcc/testsuite/gcc.dg/lto/pr113359-2_1.c b/gcc/testsuite/gcc.dg/lto/pr113359-2_1.c
index 61bc0547981..8320f347efe 100644
--- a/gcc/testsuite/gcc.dg/lto/pr113359-2_1.c
+++ b/gcc/testsuite/gcc.dg/lto/pr113359-2_1.c
@@ -5,15 +5,15 @@ 
 struct SA
 {
   unsigned int ax;
-  unsigned long ay;
-  unsigned long az;
+  unsigned long long ay;
+  unsigned long long az;
 };

 struct SB
 {
   unsigned int bx;
-  unsigned long by;
-  unsigned long bz;
+  unsigned long long by;
+  unsigned long long bz;
 };

 struct ZA