TUESDAY, JULY 21, 2026
libstdc++
libstdc++: Adjust tests for ibm128 numeric traits.
libstdc++ tests updated to correctly handle `ibm128` type for numeric traits.
The libstdc++ testsuite has been updated to correctly handle the ibm128 numeric type. Previously, ibm128 (a double-double floating-point format) was incorrectly identified as conforming to IEC 559 standards, causing test failures. This change adjusts the tests to accurately reflect ibm128’s properties.
In Details
The libstdc++ testsuite for generate_canonical has been adjusted to account for the ibm128 (double-double) floating-point type. While is_iec559 is true for this type, its mantissa size (106 bits) requires specific handling in the tests to avoid triggering a VERIFY(false) assertion triggered by incorrect assumptions about its standard compliance.
For Context
- libstdc++
- The C++ standard library implementation used by GCC. It provides classes and functions for I/O, strings, containers, algorithms, and more.
- ibm128
- A 128-bit floating-point data type sometimes referred to as 'double-double', offering higher precision than standard 64-bit doubles. It is implemented as the sum of two IEEE 754 double-precision numbers.
- is_iec559
- A numeric type trait indicating whether a floating-point type conforms to the IEC 559 standard (which is equivalent to IEEE 754).
- generate_canonical
- A process or function within the C++ standard library that generates a canonical representation of a number, often used for comparisons and hashing.