From 07f4c855f275a70980bca9692029a33d4a93d128 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Tue, 7 Nov 2023 02:03:54 +0100 Subject: [PATCH] nan: Defeat clang's incorrect -O2 optimization on mips64. * lib/nan.h (NaNf, NaNd, NaNl): Use 'volatile' to disable a clang optimization. --- ChangeLog | 6 ++++++ lib/nan.h | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1103289bae..1806fe19de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2023-11-06 Bruno Haible + + 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 nan: Work around clang's incorrect constant-folding on mips64. diff --git a/lib/nan.h b/lib/nan.h index 219b25aeac..50917488bb 100644 --- a/lib/nan.h +++ b/lib/nan.h @@ -37,7 +37,7 @@ static float NaNf () { - static float zero = 0.0f; + static float volatile zero = 0.0f; return zero / zero; } #else @@ -57,7 +57,7 @@ NaNf () static double NaNd () { - static double zero = 0.0; + static double volatile zero = 0.0; return zero / zero; } #else @@ -86,7 +86,7 @@ static long double NaNl () static long double NaNl () { - static long double zero = 0.0L; + static long double volatile zero = 0.0L; return zero / zero; } #else -- 2.39.5