Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

comp: Fix bitfields to allow underaligned fields after them to take padding space. #1950

Merged
merged 1 commit into from Dec 20, 2020

Commits on Dec 20, 2020

  1. comp: Fix bitfields to allow underaligned fields after them to take p…

    …adding space.
    
    Fixes #1947.
    
    There are two separate issues here: First, the change in comp.rs ensures
    that we don't round up the amount of storage to the alignment of the
    bitfield. That generates the "expected" output in #1947
    (`__BindgenBitfieldUnit<[u8; 3], u16>`).
    
    But that's still not enough to fix that test-case because
    __BindgenBitfieldUnit would be aligned and have padding, and Rust won't
    put the extra field in the padding.
    
    In order to ensure the bitfield starts at the right alignment, but that
    Rust can put stuff in the extra field, we need to make a breaking change
    and split the generated fields in two: One preceding that guarantees
    alignment, and the actual storage, bit-aligned.
    
    This keeps the existing behavior while fixing that test-case.
    emilio committed Dec 20, 2020
    Copy the full SHA
    88a7849 View commit details
    Browse the repository at this point in the history