https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121831
--- Comment #10 from Sam James <sjames at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #7)
> Note fixing the ODR issue:
>
> Fixes the ICE.
As discussed on IRC, just noting for completeness, it repros w/ valid:
a.cxx:
```
struct array1 {
unsigned char _M_elems[256];
};
array1 MRAMBurstTable;
extern const array1 MRAMRead16Bursts[1];
void DMAUnitTimings9_16() { MRAMBurstTable = MRAMRead16Bursts[0]; }
```
b.cxx:
```
struct array1 {
unsigned char _M_elems[256];
};
extern const array1 MRAMRead16Bursts[1]{
{3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 3, 0}
};
```