https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97335
--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> ---
This case is about:
<bb 28> [local count: 177167400]:
+ pretmp_327 = MEM[(int *)dep_dp_76(D) + 8B];
+ goto <bb 46>; [100.00%]
+
+ <bb 29> [local count: 177167400]:
ctx_144 = _44 + 4;
+ pretmp_335 = MEM[(int *)dep_dp_76(D) + 8B];
where dep_dp is of type:
typedef struct
{
unsigned int Drange;
unsigned int Dvalue;
int DbitsLeft;
byte *Dcodestrm;
int *Dcodestrm_len;
} DecodingEnvironment;
and so dep_dp_76(D) + 8B is 'Dvalue' field of the struct.
Looking at the code, there are really places where one takes pointer of the
field:
benchspec/CPU/525.x264_r/src/ldecod_src/biaridecod.c: unsigned int *value =
&dep->Dvalue;
benchspec/CPU/525.x264_r/src/ldecod_src/biaridecod.c: unsigned int *value =
&dep->Dvalue;
But the usage seems fine to me, no casting and direct usage of the 'unsigned
int *'.