Skip to content

Cherry-Pick #7574: [NFC] Address compiler warnings: C4146 - A grab bag of remaining instances#8238

Draft
alsepkow wants to merge 1 commit intomicrosoft:release-1.8.2505from
alsepkow:user/alsepkow/cherry-pick-7574-to-1.8.2505
Draft

Cherry-Pick #7574: [NFC] Address compiler warnings: C4146 - A grab bag of remaining instances#8238
alsepkow wants to merge 1 commit intomicrosoft:release-1.8.2505from
alsepkow:user/alsepkow/cherry-pick-7574-to-1.8.2505

Conversation

@alsepkow
Copy link
Contributor

@alsepkow alsepkow commented Mar 7, 2026

Cherry-pick of PR #7574 into release-1.8.2505.

Original PR: #7574
Original Commit: 23118b9

Assisted by GitHub Copilot.

…stances (microsoft#7574)

## Fix C4146 warnings: unary minus on unsigned types

Fixes several remaining MSVC C4146 warnings where unary minus was
applied to unsigned integers.
This should be the last PR containing MSVC C4146 warning fixes. I will
remove the disablement of the warning as an error in a subsequent PR
once the other pending PRs are completed.

**Changes:**
- Replace `-(unsigned_value)` with `~unsigned_value + 1` for offset
calculations
- Use `-1LL` instead of `-1ULL` where signed values are intended
- Fix alignment padding calculation to avoid unsigned negation

**Files changed:**
- CoverageMappingGen.cpp, Lexer.cpp, Rewriter.cpp: Use two's complement
for safe unsigned negation in offset calculations
- ItaniumCXXABI.cpp: Use signed literal for ABI-compliant null member
pointer (-1)
- ExprConstant.cpp: Replace `-1ULL` with `~0ULL` for bitmasks
- CodeGenMapTable.cpp: Fix sentinel value generation

All changes are mathematically equivalent and preserve existing behavior
while eliminating compiler warnings.

Addresses microsoft#7573
@alsepkow alsepkow changed the title Cherry-Pick: [NFC] Address compiler warnings: C4146 - A 'grab bag' of remaining instances (#7574) Cherry-Pick #7574: [NFC] Address compiler warnings: C4146 - A grab bag of remaining instances Mar 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: New

Development

Successfully merging this pull request may close these issues.

1 participant