[LLVMbugs] [Bug 5995] New: Strange/incorrect field access code
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Mon Jan 11 11:42:44 PST 2010
http://llvm.org/bugs/show_bug.cgi?id=5995
Summary: Strange/incorrect field access code
Product: tools
Version: trunk
Platform: Other
OS/Version: Linux
Status: NEW
Severity: major
Priority: P2
Component: llvm-gcc
AssignedTo: unassignedbugs at nondot.org
ReportedBy: av1474 at comtv.ru
CC: llvmbugs at cs.uiuc.edu
Here:
~$ uname -a
Linux linmac 2.6.23-exp #1 Thu Oct 11 07:23:51 MSD 2007 ppc GNU/Linux
llvm-gcc:
~$ ~/x/dev/llvm/bin/gcc -v
Using built-in specs.
Target: powerpc-unknown-linux-gnu
Configured with: ../../llvm-gcc-4.2/configure --prefix=/home/malc/x/dev/llvm
--enable-languages=c --enable-llvm=/home/malc/x/rcs/svn/llvm/build/llvm/
--disable-bootstrap --disable-multilib : (reconfigured)
../../llvm-gcc-4.2/configure --prefix=/home/malc/x/dev/llvm
--enable-languages=c --enable-llvm=/home/malc/x/rcs/svn/llvm/build/llvm/
--disable-bootstrap --disable-multilib --disable-libgomp
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build)
produces unusual code in response to:
struct s {
int word;
struct {
int filler __attribute__ ((aligned (8)));
};
};
void func (struct s *s)
{
s->word = 0;
}
namely:
.ident "GCC: (GNU) 4.2.1 (Based on Apple Inc. build 5658) (LLVM
build)"
.file "a.c"
.text
.global func
.type func, @function
.align 2
func:
li 4, 0
stb 4, 2(3)
stb 4, 1(3)
stb 4, 3(3)
stb 4, 0(3)
blr
.size func,.-func
[ If one substitutes `int word' with `volatile sig_atomic_t word' the code
becomes incorrect AFAICS ]
P.S. This is reduced test-cases for the problem encountered with QEMU which
has jmp_buf[1] inside important structure along with a word-sized field
accessed from the signal handler.
[1] jmp_buf has similar aligned field within a structure layout which seems
to be required for this issue to trigger
--
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