Next: @encode, Up: Type encoding [Contents][Index]
Unfortunately, historically GCC used to have a number of bugs in its encoding code. The NeXT runtime expects GCC to emit type encodings in this historical format (compatible with GCC-3.3), so when using the NeXT runtime, GCC will introduce on purpose a number of incorrect encodings:
enum
s are always encoded as i (int) even if they are actually unsigned or long.In addition to that, the NeXT runtime uses a different encoding for bitfields. It encodes them as b
followed by the size, without a bit offset or the underlying field type.