| Summary: | ldexpf() does not set OF flag when running in valgrind | ||
|---|---|---|---|
| Product: | [Developer tools] valgrind | Reporter: | OlofZ <zachrolo> |
| Component: | memcheck | Assignee: | Paul Floyd <pjfloyd> |
| Status: | REPORTED --- | ||
| Severity: | normal | CC: | pjfloyd, zachrolo |
| Priority: | NOR | ||
| Version First Reported In: | 3.23.0 | ||
| Target Milestone: | --- | ||
| Platform: | RedHat Enterprise Linux | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
Valgrind does not support floating point exceptions, which includes the floating point status register. This might be a duplicate - I'll check in a bit. |
SUMMARY ldexpf() does not set OF flag when running in valgrind STEPS TO REPRODUCE 1. Create fenv.c containing: #include <stdio.h> #include <fenv.h> #include <math.h> // ldexpf() int main() { float inf = ldexpf(0x4000, 0x78); // Overflow printf("fetestexcept(FE_OVERFLOW) = 0x%x\n", fetestexcept(FE_OVERFLOW)); } 2. Build with: Build with: gcc -g -lm fenv.c -o fenv 3. OBSERVED RESULT $ ./fenv fetestexcept(0x8) = 0x8 $ valgrind ./fenv ==1226387== Memcheck, a memory error detector ==1226387== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al. ==1226387== Using Valgrind-3.23.0 and LibVEX; rerun with -h for copyright info ==1226387== Command: ./fenv ==1226387== fetestexcept(FE_OVERFLOW) = 0x0 ==1226387== ==1226387== HEAP SUMMARY: ==1226387== in use at exit: 0 bytes in 0 blocks ==1226387== total heap usage: 1 allocs, 1 frees, 1,024 bytes allocated ==1226387== ==1226387== All heap blocks were freed -- no leaks are possible ==1226387== ==1226387== For lists of detected and suppressed errors, rerun with: -s ==1226387== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) EXPECTED RESULT $ valgrind ./fenv ... fetestexcept(0x8) = 0x8 ... SOFTWARE/OS VERSIONS Windows: macOS: (available in the Info Center app, or by running `kinfo` in a terminal window) Linux/KDE Plasma: KDE Plasma Version: KDE Frameworks Version: Qt Version: ADDITIONAL INFORMATION $ cat /etc/redhat-release Red Hat Enterprise Linux release 8.7 (Ootpa) $ uname -a Linux seroiuts02226 4.18.0-425.19.2.el8_7.x86_64 #1 SMP Fri Mar 17 01:52:38 EDT 2023 x86_64 x86_64 x86_64 GNU/Linux