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.
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.
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
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