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

Reply via email to