Open
Description
See https://clang.godbolt.org/z/3W6f9faaK
Reproduced below.
When the inputs of C23 maximum/minimum_num are -0 and +0, it always returns +0.
However, clang returns -0.
#include <cmath>
#include <print>
int main() {
using T = double;
T nz = T(-0.);
T pz = T(+0.);
T r = fmaximum_num(pz,nz);
int v = std::memcmp(&r, &pz, sizeof(double)); // if result bitwise identical to +0, then returns 0
if (v == 0) return 0;
std::println(stderr, "ERROR: {} != {}", r, pz); // prints 0 != -0
return 1;
}
cc @lntue