Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Jun 25, 2025

Conversation

alsepkow
Copy link
Contributor

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 #7573

@alsepkow alsepkow merged commit 23118b9 into microsoft:main Jun 25, 2025
13 checks passed
@github-project-automation github-project-automation bot moved this from New to Done in HLSL Roadmap Jun 25, 2025
@alsepkow alsepkow deleted the user/alsepkow/EO_4146_3 branch June 25, 2025 02:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants