У меня появляется это предупреждение, когда я пытаюсь скомпилировать следующее объединение:
10:5: note: offset of packed bit-field 'main()::pack_it_in::<anonymous struct>::two' has changed in GCC 4.4
#pragma GCC diagnostic ignore "-Wpacked-bitfield-compat"union pack_it_in {
struct
{
uint8_t zero : 3;
uint8_t one : 2;
uint8_t two : 6;
uint8_t three : 4;
uint8_t four : 1;
} __attribute__((packed)) u8_2;
uint16_t u16;
};
#pragma GCC diagnostic pop
#pragma не игнорирует эту заметку. Есть ли способ заставить работать #pragma без использования -Wno-packed-bitfield-compat
так как я хочу, чтобы это предупреждение игнорировалось только для двух из моих восьми союзов?
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpacked-bitfield-compat"union pack_it_in {
struct
{
uint8_t zero : 3;
uint8_t one : 2;
uint8_t two : 6;
uint8_t three : 4;
uint8_t four : 1;
} __attribute__((packed)) u8_2;
uint16_t u16;
};
#pragma GCC diagnostic pop
Других решений пока нет …