Interface BitFieldPacking

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      int getZeroLengthBoundary()
      A non-zero value indicates the fixed alignment size for bit-fields which follow a zero-length bitfield if greater than a bitfields base type normal alignment.
      boolean isTypeAlignmentEnabled()
      Control whether the alignment of bit-field types is respected when laying out structures.
      boolean useMSConvention()
      Control if the alignment and packing of bit-fields follows MSVC conventions.
    • Method Detail

      • useMSConvention

        boolean useMSConvention()
        Control if the alignment and packing of bit-fields follows MSVC conventions. When this is enabled it takes precedence over all other bitfield packing controls.
        Returns:
        true if MSVC packing conventions are used, else false (e.g., GNU conventions apply).
      • isTypeAlignmentEnabled

        boolean isTypeAlignmentEnabled()
        Control whether the alignment of bit-field types is respected when laying out structures. Corresponds to PCC_BITFIELD_TYPE_MATTERS in GCC.
        Returns:
        true when the alignment of the bit-field type should be used to impact the alignment of the containing structure, and ensure that individual bit-fields will not straddle an alignment boundary.
      • getZeroLengthBoundary

        int getZeroLengthBoundary()
        A non-zero value indicates the fixed alignment size for bit-fields which follow a zero-length bitfield if greater than a bitfields base type normal alignment. Corresponds to EMPTY_FIELD_BOUNDARY in GCC. This value is only used when isTypeAlignmentEnabled() returns false and #isZeroLengthAlignmentEnabled() returns true.
        Returns:
        fixed alignment size as number of bytes for a bit-field which follows a zero-length bit-field