[LLVMbugs] [Bug 14694] New: clang violates C++11 memory model for bitfields at end of structs
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Dec 21 15:39:30 PST 2012
http://llvm.org/bugs/show_bug.cgi?id=14694
Bug #: 14694
Summary: clang violates C++11 memory model for bitfields at end
of structs
Product: clang
Version: trunk
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P
Component: C++11
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: richard-llvm at metafoo.co.uk
CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
Classification: Unclassified
Consider this:
union U {
struct { int c : 23; };
struct { int c2 : 23; char k; };
} s;
void f() { s.c = 5; }
Per the C++11 memory model and common initial sequence rules, 'f' is only
permitted to write to the first three bytes of s. Clang emits an i32 load and
an i32 store, which can introduce a data race on 's.k'.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list