Commit a335757
Core: Fold a negated integer literal into a constant
-2 parses as USub(Constant 2), so u32 / -2 reached the divider as a
mul-by-minus-one instruction rather than the constant clang folds it to.
Fold it at the unary operator; the result is a literal like any other,
with a literal's C rank, so the usual arithmetic conversions still make
u32 / -2 an unsigned division by 0xFFFFFFFE.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BSDVsZH5NtoASyxB8FCtGU1 parent d6cd5ac commit a335757
1 file changed
Lines changed: 12 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
51 | 58 | | |
52 | 59 | | |
53 | 60 | | |
54 | 61 | | |
55 | 62 | | |
56 | 63 | | |
57 | | - | |
58 | | - | |
| 64 | + | |
59 | 65 | | |
60 | 66 | | |
61 | 67 | | |
| |||
414 | 420 | | |
415 | 421 | | |
416 | 422 | | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
417 | 427 | | |
418 | 428 | | |
419 | 429 | | |
| |||
0 commit comments