* lib/nan.h (NaNf, NaNd, NaNl): Use 'volatile' to disable a clang
optimization.
+2023-11-06 Bruno Haible <bruno@clisp.org>
+
+ nan: Defeat clang's incorrect -O2 optimization on mips64.
+ * lib/nan.h (NaNf, NaNd, NaNl): Use 'volatile' to disable a clang
+ optimization.
+
2023-11-06 Bruno Haible <bruno@clisp.org>
nan: Work around clang's incorrect constant-folding on mips64.
static float
NaNf ()
{
- static float zero = 0.0f;
+ static float volatile zero = 0.0f;
return zero / zero;
}
#else
static double
NaNd ()
{
- static double zero = 0.0;
+ static double volatile zero = 0.0;
return zero / zero;
}
#else
static long double
NaNl ()
{
- static long double zero = 0.0L;
+ static long double volatile zero = 0.0L;
return zero / zero;
}
#else