random errors on aarch64 when executing __aarch64_cas8_acq_rel
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Hello,
Since I upgraded to qemu-5.0 when executing the GCC testsuite,
I've noticed random failures of g++.dg/
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,
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_
}
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_
__aarch64_
I'm not quite sure what's wrong :-(
I've not noticed such random problems with native aarch64 hardware.
tags: | added: arm testcase |
FWIW, I cannot reproduce the problem with x86_64 host,
but I can reproduce it on a 32-bit i686 host.