[LLVMbugs] [Bug 13952] New: [ppc64] Bitfield with default signedness not loaded
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Sep 27 10:25:52 PDT 2012
http://llvm.org/bugs/show_bug.cgi?id=13952
Bug #: 13952
Summary: [ppc64] Bitfield with default signedness not loaded
Product: libraries
Version: trunk
Platform: Other
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: Backend: PowerPC
AssignedTo: unassignedbugs at nondot.org
ReportedBy: wschmidt at linux.vnet.ibm.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
For the 64-bit PowerPC SVR4 subtarget, one of the GCC ABI compatibility tests
generates bad code for a bitfield reference with unspecified signedness. The
test applies -funsigned-bitfields to coerce this. There are three one-bit
bitfields, one of which is signed, one unsigned, and one default. The
explicitly signed and unsigned bitfields are loaded properly. For the
default-signedness bitfield, the load of the bitfield is replaced by a
load-immediate of zero. The code for the unsigned bitfield is:
.LBB0_2:
.loc 2 11 3
ld 3, 128(31)
lwz 4, 0(3)
rlwinm 4, 4, 2, 31, 31
cmplwi 0, 4, 0
bne 0, .LBB0_4
b .LBB0_3
whereas the code for the default bitfield is:
.LBB0_4:
li 3, 0
.loc 2 13 3
cmplwi 0, 3, 0
bne 0, .LBB0_6
b .LBB0_5
The test is in the GCC ABI compatibility test suite. Compilation that produces
the above code gen is:
/home/wschmidt/llvm/install/llvm-base/bin/clang++ -w -ansi -pedantic-errors
-funsigned-bitfields -c -m64 -o cp_compat_y_alt.o
/home/wschmidt/gcc/gcc-mainline-base/gcc/testsuite/g++.dg/compat/abi//bitfield1_y.C
--
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