float_as_int_without_noise() returns early when the floored value fits
in a long, checking it with floor_val == static_cast<long>(floor_val).
For values outside the range of long the conversion is undefined
behavior; clang -O2 folds the round trip into "floor_val is integral",
which is always true, so the denoising is skipped:
FAIL: tests/test_fastnumbers_examples.py:test_try_real
FAIL: tests/test_fastnumbers_examples.py:test_try_forceint
assert 3452999999999999737856 == 3453000000000000000000
Add a patch that only does the conversion when the value is in range.
A reduced reproducer returns the wrong answer with the recipe's clang++
at -O2 and the right one with the fix (and with -O0 or gcc).
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Remove assignments to PYPI_PACKAGE where the value is the default value,
that is the recipe name with any python3- prefix removed.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Changelog:
===========
- Added support for Python 3.14
- Fixed invalid license classifier
- Explicitly set language="c++" and add -lstdc++ to solve linker problem on OpenSUSE
- Fix bug where compilation warnings for MSVC were not turned into errors for CI testing
- Eliminate various static analysis warnings
- Removed support for Python 3.8
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>