drc: make gcc11 happier
authornotaz <notasas@gmail.com>
Sat, 12 Apr 2025 21:57:05 +0000 (00:57 +0300)
committernotaz <notasas@gmail.com>
Sat, 12 Apr 2025 21:57:05 +0000 (00:57 +0300)
-Warray-bounds only under -O3, apparently

libpcsxcore/new_dynarec/assem_arm.c
libpcsxcore/new_dynarec/assem_arm64.c

index 5caa536..aabf1c2 100644 (file)
@@ -468,15 +468,15 @@ static void emit_loadreg(int r, int hr)
 static void emit_storereg(int r, int hr)
 {
   assert(hr != EXCLUDE_REG);
-  int addr = (int)&psxRegs.GPR.r[r];
+  void *addr;
   switch (r) {
   //case HIREG: addr = &hi; break;
   //case LOREG: addr = &lo; break;
-  case CCREG: addr = (int)&cycle_count; break;
-  default: assert(r < 34); break;
+  case CCREG: addr = &cycle_count; break;
+  default: assert(r < 34u); addr = &psxRegs.GPR.r[r]; break;
   }
-  u_int offset = addr-(u_int)&dynarec_local;
-  assert(offset<4096);
+  uintptr_t offset = (char *)addr - (char *)&dynarec_local;
+  assert(offset < 4096u);
   assem_debug("str %s,fp+%d # r%d\n",regname[hr],offset,r);
   output_w32(0xe5800000|rd_rn_rm(hr,FP,0)|offset);
 }
index 8f174fd..dabacae 100644 (file)
@@ -523,12 +523,12 @@ static void emit_writedword(u_int rt, void *addr)
 static void emit_storereg(u_int r, u_int hr)
 {
   assert(r < 64);
-  void *addr = &psxRegs.GPR.r[r];
+  void *addr;
   switch (r) {
   //case HIREG: addr = &hi; break;
   //case LOREG: addr = &lo; break;
   case CCREG: addr = &cycle_count; break;
-  default: assert(r < 34); break;
+  default: assert(r < 34u); addr = &psxRegs.GPR.r[r]; break;
   }
   emit_writeword(hr, addr);
 }