Commit e438513
authored
[AIX][AsmPrinter] Fix unsigned subtraction wrap-around (#122214)
Unsigned subtraction wrap-around occurs in `emitGlobalConstantImpl` on
an AIX-specific code path from 8e4423e when a structure type has
zero elements.
With assertions enabled, this manifests as:
```
TypeSize llvm::StructLayout::getElementOffset(unsigned int) const: Assertion `Idx < NumElements && "Invalid element idx!"' failed.
```1 parent c6b7bd4 commit e438513
File tree
2 files changed
+34
-13
lines changed- llvm
- lib/CodeGen/AsmPrinter
- test/CodeGen/PowerPC
2 files changed
+34
-13
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3914 | 3914 | | |
3915 | 3915 | | |
3916 | 3916 | | |
3917 | | - | |
3918 | | - | |
3919 | | - | |
3920 | | - | |
3921 | | - | |
3922 | | - | |
3923 | | - | |
3924 | | - | |
3925 | | - | |
| 3917 | + | |
| 3918 | + | |
| 3919 | + | |
| 3920 | + | |
| 3921 | + | |
| 3922 | + | |
| 3923 | + | |
| 3924 | + | |
| 3925 | + | |
| 3926 | + | |
| 3927 | + | |
| 3928 | + | |
| 3929 | + | |
3926 | 3930 | | |
3927 | | - | |
3928 | | - | |
3929 | | - | |
3930 | | - | |
3931 | 3931 | | |
| 3932 | + | |
3932 | 3933 | | |
3933 | 3934 | | |
3934 | 3935 | | |
| |||
Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
0 commit comments