[LLVMdev] struct with signed bitfield (PR17827)

Richard Smith richard at metafoo.co.uk
Sat Nov 16 15:09:39 PST 2013


C says that plain bit-fields could be either signed or unsigned. C++
removed this allowance in core issue 739:

http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#739


On Sat, Nov 16, 2013 at 1:55 PM, Duncan P. N. Exon Smith <
dexonsmith at apple.com> wrote:

> On 2013 Nov 15, at 19:41, Mark Lacey <mark.lacey at apple.com> wrote:
>
> > I don’t have the C/C++ standards in front of me but IIRC whether a
> char/short/int/long/long long bitfield is signed or unsigned is
> implementation defined. You need to explicitly specify signed or unsigned
> in order to have any guarantee of the signedness, e.g. signed int.
>
> Section 3.9.1 of the C++11 standard [1] defines short/int/long/long long
> as signed.  Bit-fields are discussed in 9.6 and have lots of
> implementation-defined behavior, but I don’t see anything about signedness.
>  The ABI (e.g., [2]) defines whether char is signed or unsigned.
>
> [1]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3485.pdf
> [2]: http://www.cs.tufts.edu/comp/40/readings/amd64-abi.pdf
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131116/22e15466/attachment.html>


More information about the llvm-dev mailing list