ISO Standard: |
“A member of a union object is accessed using a member of a different
type (C90 6.3.2.3).” |
Implementation: |
The corresponding bytes of the union object are interpreted as an
object of the type of the member being accessed without regard for
alignment or other possible invalid conditions. |
ISO Standard: |
“Whether a “plain” int bit field is treated as a
signed int bit field or as an unsigned
int bit field (C90 6.5.2, C90 6.5.2.1, C99 6.7.2, C99
6.7.2.1).” |
Implementation: |
By default on PIC32M, a plain int bit field is
treated as a signed integer. This behavior can be altered by use of the
-funsigned-bitfields command line option. |
ISO Standard: |
“Allowable bit field types other than _Bool ,
signed int , and unsigned int (C99
6.7.2.1).” |
Implementation: |
No other types are supported. |
ISO Standard: |
“Whether a bit field can straddle a storage unit boundary (C90
6.5.2.1, C99 6.7.2.1).” |
Implementation: |
No. |
ISO Standard: |
“The order of allocation of bit fields within a unit (C90 6.5.2.1,
C99 6.7.2.1).” |
Implementation: |
Bit fields are allocated left to right. |
ISO Standard: |
“The alignment of non-bit field members of structures (C90 6.5.2.1,
C99 6.7.2.1).” |
Implementation: |
Each member is located to the lowest available offset allowable
according to the alignment restrictions of the member type. |
ISO Standard: |
“The integer type compatible with each enumerated type (C90 6.5.2.2,
C99 6.7.2.2).” |
Implementation: |
If the enumeration values are all non-negative, the type is
unsigned int , else it is int . The
-fshort-enums command line option can change
this. |