diff options
Diffstat (limited to 'results/classifier/no-thinking-deepseek-r1:32b/output/instruction/1883268')
| -rw-r--r-- | results/classifier/no-thinking-deepseek-r1:32b/output/instruction/1883268 | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/results/classifier/no-thinking-deepseek-r1:32b/output/instruction/1883268 b/results/classifier/no-thinking-deepseek-r1:32b/output/instruction/1883268 new file mode 100644 index 000000000..97be215b8 --- /dev/null +++ b/results/classifier/no-thinking-deepseek-r1:32b/output/instruction/1883268 @@ -0,0 +1,40 @@ + + + +random errors on aarch64 when executing __aarch64_cas8_acq_rel + +Hello, + +Since I upgraded to qemu-5.0 when executing the GCC testsuite, +I've noticed random failures of g++.dg/ext/sync-4.C. + +I'm attaching the source of the testcase, the binary executable and the qemu traces (huge, 111MB!) starting at main (with qemu-aarch64 -cpu cortex-a57 -R 0 -d in_asm,int,exec,cpu,unimp,guest_errors,nochain) + +The traces where generated by a CI build, I built the executable manually but I expect it to be the same as the one executed by CI. + +In seems the problem occurs in f13, which leads to a call to abort() + +The preprocessed version of f13/t13 are as follows: +static bool f13 (void *p) __attribute__ ((noinline)); +static bool f13 (void *p) +{ + return (__sync_bool_compare_and_swap((ditype*)p, 1, 2)); +} +static void t13 () +{ + try { + f13(0); + } + catch (...) { + return; + } + abort(); +} + + +When looking at the execution traces at address 0x00400c9c, main calls f13, which in turn calls __aarch64_cas8_acq_rel (at 0x00401084) +__aarch64_cas8_acq_rel returns to f13 (address 0x0040113c), then f13 returns to main (0x0040108c) which then calls abort (0x00400ca0) + +I'm not quite sure what's wrong :-( + +I've not noticed such random problems with native aarch64 hardware. \ No newline at end of file |