summary refs log tree commit diff stats
path: root/results/scraper/launchpad-without-comments/1821515
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-06-30 12:24:58 +0000
committerChristian Krinitsin <mail@krinitsin.com>2025-06-30 12:27:06 +0000
commit33606b41d35115f887ea688b1a16f2ff85bf2fe4 (patch)
tree406b2c7b19a087ba437c68f3dbf0b589fa1d6150 /results/scraper/launchpad-without-comments/1821515
parentadedf8771bc4de3113041ca21bd4d0d1c0014b6a (diff)
downloadqemu-analysis-33606b41d35115f887ea688b1a16f2ff85bf2fe4.tar.gz
qemu-analysis-33606b41d35115f887ea688b1a16f2ff85bf2fe4.zip
add launchpad bug reports without comments
Diffstat (limited to 'results/scraper/launchpad-without-comments/1821515')
-rw-r--r--results/scraper/launchpad-without-comments/182151538
1 files changed, 38 insertions, 0 deletions
diff --git a/results/scraper/launchpad-without-comments/1821515 b/results/scraper/launchpad-without-comments/1821515
new file mode 100644
index 000000000..0a336fbd2
--- /dev/null
+++ b/results/scraper/launchpad-without-comments/1821515
@@ -0,0 +1,38 @@
+qemu-ppc (user) incorrectly converts float(nan)->double(non-nan)
+
+Noticed on qemu-3.1.0 on GHC test suite where float32 comparisons didn't work on NaNs.
+Here is the minimal reproducer:
+
+```c
+// cat a.c
+#include <stdio.h>
+#include <math.h>
+#include <stdint.h>
+
+int main() {
+    volatile float f1 = NAN;
+    volatile float f2 = NAN;
+    printf ("f1 (%e, %#x) >= f2 (%e, %#x): %s\n",
+        f1, *(volatile uint32_t*)&f1,
+        f2, *(volatile uint32_t*)&f2,
+        (f1 >= f2) ? "True"
+                   : "False");
+    volatile double d = f1;
+    printf ("d (%e, %#llx)\n",
+        d, *(volatile uint64_t*)&d);
+}
+```
+
+```
+# incorrect execution:
+$ powerpc-unknown-linux-gnu-gcc -O2 a.c -o a -static && qemu-ppc ./a 
+f1 (5.104236e+38, 0x7fc00000) >= f2 (5.104236e+38, 0x7fc00000): True
+d (5.104236e+38, 0x47f8000000000000)
+
+# correct execution
+$ scp a timberdoodle.ppc64.dev.gentoo.org:~/;  ssh timberdoodle.ppc64.dev.gentoo.org ./a
+f1 (nan, 0x7fc00000) >= f2 (nan, 0x7fc00000): False
+d (nan, 0x7ff8000000000000)
+```
+
+Note: qemu-ppc handled float32 extension as it was not a NaN (exp=111..1111) but a normalized number.
\ No newline at end of file