<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/125540>125540</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            lots of `-Warray-bounds=` warnings in `llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          firewave
      </td>
    </tr>
</table>

<pre>
    ```
In function ‘DecodeStatus decodeRegisterClass(llvm::MCInst&, uint64_t, const llvm::MCPhysReg (&)[N]) [with long unsigned int N = 32]’,
    inlined from ‘DecodeStatus decodeRegisterClass(llvm::MCInst&, uint64_t, const llvm::MCPhysReg (&)[N]) [with long unsigned int N = 8]’ at /home/user/CLionProjects/llvm-project/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp:84:21,
    inlined from ‘DecodeStatus DecodeCRRCRegisterClass(llvm::MCInst&, uint64_t, uint64_t, const llvm::MCDisassembler*)’ at /home/user/CLionProjects/llvm-project/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp:95:29,
    inlined from ‘DecodeStatus DecodeCRRCRegisterClass(llvm::MCInst&, uint64_t, uint64_t, const llvm::MCDisassembler*)’ at /home/user/CLionProjects/llvm-project/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp:92:21,
    inlined from ‘DecodeStatus llvm::decodeToMCInst(DecodeStatus, unsigned int, InsnType, MCInst&, uint64_t, const MCDisassembler*, bool&) [with InsnType = long unsigned int]’ at /home/user/CLionProjects/llvm-project/build/lib/Target/PowerPC/PPCGenDisassemblerTables.inc:6610:15:
/home/user/CLionProjects/llvm-project/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp:88:44: warning: array subscript ‘const llvm::MCPhysReg [32] {aka const short unsigned int [32]}[0]’ is partly outside array bounds of ‘const llvm::MCPhysReg [8]’ {aka ‘const short unsigned int [8]’} [-Warray-bounds=]
   88 |   Inst.addOperand(MCOperand::createReg(Regs[RegNo]));
      |                                        ~~~~^
/home/user/CLionProjects/llvm-project/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp: In function ‘DecodeStatus llvm::decodeToMCInst(DecodeStatus, unsigned int, InsnType, MCInst&, uint64_t, const MCDisassembler*, bool&) [with InsnType = long unsigned int]’:
/home/user/CLionProjects/llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h:279:26: note: object ‘CRRegs’ of size 16
  279 |   static const MCPhysReg CRRegs[8] = PPC_REGS0_7(PPC::CR);                     \
      |                          ^~~~~~
/home/user/CLionProjects/llvm-project/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp:20:1: note: in expansion of macro ‘DEFINE_PPC_REGCLASSES’
   20 | DEFINE_PPC_REGCLASSES
      | ^~~~~~~~~~~~~~~~~~~~~
```

This is just a excerpt. There are lots of them.

I am using `gcc (GCC) 14.2.1 20240910` on Manjaro Linux.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkV11vozgU_TU3L1eDjPl-4IGQZFRp2kVppH2sDDjgWWJH2Eyn-9DfvjKQaTJTddr9UHe1CAnbuTb3Hp9zTJjWopGcpxAsIVgt2GBa1ad70fN79oUvSlU_pBCS-SbZlcT9ICsjlERYU4gJJPGKV6rmt4aZQWM9dra8EdrwPu-Y1kDjrvtyAC8DL7vOr6Q2QEOgOQ5CmtC_M7ZdKakNngcW7YPe8gaBxmN8AsHyBoIV0AQhWN4L02KnZIODHMuoUUiDNwjeCj1qA-cME6A5kAwRUchO2Mh9rw7_7gri8wKQGQS6adWBA90MmvdAN_knoWTRq8-8Mhroxr75w3Hqz137ECXQzY71DbejhbrnfZED3ayEZlrzQ9mNqxVFfj7iVMcjeFnsg5dR900ATp18u83_BIgvA3qZc2YRfXeIksBC9DaO_d8gom9n0VNNkyB36gTIRdwIyJl6bP9Karl7OHLb_olan8Erx1KpbtLrN5Welhyl-YNk_6pUy0F09UsoF0X-kcvzVHes7Lh2hKzAy8LQJeBlrmUikOx9nCIGL_OtXeA966WQjW2yvmcPqIdSV704mqe9fsEsg-Xo3gjRkv3G5o3SrerNpU-eAiFaQbAkF5sgNB5Zb7oHVIPRouZzJqUaZK1R7V-ZyaULzxl9N_X51C5mQrSyYx9-HbP4MGUB3srGjIqIY4QoR7REMw6r61-OvGeyBhpf56f2mF7Vc2bs8QQ03vJGQ7Dc8uZGTceKvb3lrDKc13zV9fj4-AjB-r3ogz__tPivOsI_I8rrfBpccV1NqJ6POK113Mi-m4YWXqkMt09V2vWfEM63I4m-UVztUYvfObrhSCIaJTOJtGFGVN9AOmlknj_xfcSiKPK77frjLbmLgMZFkU97lm8nbj5LPgjy13EWgvXjyNR3oikdffYcUCGRfz0yqS1x1R4PrOrVGYPXm6ub9d0MSv4pu71d3z5RYyyakrHo50PPYTlV_91lwTj7SAeS7VqhrQd-HrRBhvxrxfujcXDX8t5aIcdOmdEGTcsPzjTpCtkBBy1kgxCSpqrsd-vHPLesd32HOi5SQn2SuPZFqCReM_mZ9Qo_CTl8dRZ16tWJl7AFT93Ii0PiJdRftGnE_KoM3DDy93VEQ68K9x4nxPMJCcIgThYipYQGhBLPjTxKfMdPCI_Dveey2A9Cj4FP-IGJzrGb6Ki-WQitB566NAh8suhYyTs9_ouhVPJ7HH8Fak-HRZ-ORCiHRoNPOqGNflrGCNPx9AQGhORHiw7J6UDTdrMhJH8Dk0KyGPoubY05aqsPugG6aYRph9Kp1OGMrpckHguz5J4r_5LSPwIAAP__kGg9nQ">