[Bug 273773] PNVI-ae-udi memory model non-compliance
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 14 Sep 2023 08:26:16 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273773
Bug ID: 273773
Summary: PNVI-ae-udi memory model non-compliance
Product: Base System
Version: 13.2-RELEASE
Hardware: arm64
OS: Any
Status: New
Severity: Affects Many People
Priority: ---
Component: arm
Assignee: freebsd-arm@FreeBSD.org
Reporter: pkk@spth.de
Attachment #244826 text/plain
mime type:
Created attachment 244826
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=244826&action=edit
Some sample C source to reproduce the issue
I discovered this issue using the SDCC regression test suite on a Raspi 4
running FreeBSD 13.0, 13.1 and 13.2. I do not know if it affects other FreeBSD
systems.
The C standard does not specify a memory model, and there are ambiguities and
different interpretations. Years ago, this became to be seen as a problem, and
WG14 created the memory model study group. By now, there is mostly a consensus
that the memory model called "PNVI-ae-udi" makes the most sense. While it will
not be put into the C standard immediately, it will be a technical
specification (TS 6010).
FreeBSD 13 on aarch64 currently fails three of the testcases for the
PNVI-ae-udi memory model (I have not seen similar problem on GNU/Linux with
recent clang and GCC).
Reproduce e.g. via:
philipp@raspi-aulnay:~ $ clang -Wall -pedantic -O2 test2.c
test2.c:35:13: warning: unused variable 'j' [-Wunused-variable]
uintptr_t j = (uintptr_t)q;
^
1 warning generated.
philipp@raspi-aulnay:~ $ ./a.out
Assertion failed: (y == 11), function testMM, file test2.c, line 39.
Abort trap (core dumped)
--
You are receiving this mail because:
You are the assignee for the bug.