Skip to content

Fix floating-to-integral narrow undefined behavior - #1266

Open
Carson Radtke (carsonRadtke) wants to merge 3 commits into
microsoft:mainfrom
carsonRadtke:fix-narrow-float-conversion-ub
Open

Fix floating-to-integral narrow undefined behavior#1266
Carson Radtke (carsonRadtke) wants to merge 3 commits into
microsoft:mainfrom
carsonRadtke:fix-narrow-float-conversion-ub

Conversation

@carsonRadtke

@carsonRadtke Carson Radtke (carsonRadtke) commented Aug 20, 2026

Copy link
Copy Markdown
Member

Summary

  • reject undefined floating-to-integral conversions before narrow_cast
  • preserve exact signed minimum conversions across differing floating-point precision
  • cover open range boundaries, infinities, NaN, and bool
  • add Linux ASan/UBSan and Windows ASan CMake presets and CI jobs

Testing

  • WSL Clang C++20 ASan/UBSan: 15/15 tests passed
  • Windows MSVC C++20 ASan: 15/15 tests passed
  • Windows MSVC C++20 Debug utils_tests: passed

Fixes #786

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add static asserts to gsl::narrow for template parameter pairs that can never work

1 participant