Цитата(KRS @ Sep 19 2008, 09:46)

потому что константа 0x86 (по умолчанию целое со знаком) а т.к. приводится к беззнакому байту получается варнинг.
Вот я тоже примерно так хотел ответить, но есть нестыковки. Константа, объявленная без модификаторов (U, L, LL ULL) имеет тип signed int. При этом не происходит приведений типа к int и расширений знака. Что 0x76, что 0x86 должны после операции ~ иметь взведенные старшие биты. Т.е. ругань должна быть и на вторую строку тоже. Если безумно предположить, что константы 0x76 и 0x86 имеют тип signed char, то перед операцией ~ они, в соответствии с integer promotions rules должны быть приведены к типу int и вот тут у числа 0x86 будет расширен знак, что после операции ~ даст сброшенные старшие биты у ~0x86 и взведенные у 0x76. Т.е. в этом случае наоборот, ругань должна быть на вторую строчку, а не на первую.
В общем "нутром чую, что пол-литра, а объяснить не могу"
Цитата(KRS @ Sep 19 2008, 09:46)

в общем надо или забить
В корне неверно. Когда таких "забитых" накопится больше трех, в них обязательно потеряется что-нибудь действительно опасное. Поэтому лучше все же победить причину. На совсем крайний случай есть #pragma diag_suppres и обратная ей, которыми можно обрамить неприятную строчку, но я вам этого не говорил

P.S. GCC ругается так же.
Вот загадка:
Код
uint8_t i;
int i2;
void test()
{
i = ~ 0x76;
i2 = ~ 0x76;
}
// ругани нет
325 0000 89E8 ldi r24,lo8(-119) ; tmp51,
326 0002 8093 0000 sts i,r24 ; i, tmp51
327 .LSM43:
328 0006 89E8 ldi r24,lo8(-119) ; tmp52,
329 0008 9FEF ldi r25,hi8(-119) ; tmp52,
330 000a 9093 0000 sts (i2)+1,r25 ; i2, tmp52
331 000e 8093 0000 sts i2,r24 ; i2, tmp52
uint8_t i;
int i2;
void test()
{
i = ~ 0x86;
i2 = ~ 0x86;
}
// ругань есть
325 0000 89E7 ldi r24,lo8(121) ; tmp51,
326 0002 8093 0000 sts i,r24 ; i, tmp51
327 .LSM43:
328 0006 89E7 ldi r24,lo8(-135) ; tmp52,
329 0008 9FEF ldi r25,hi8(-135) ; tmp52,
330 000a 9093 0000 sts (i2)+1,r25 ; i2, tmp52
331 000e 8093 0000 sts i2,r24 ; i2, tmp52
Я пас. Но я в тупике от того, что нету ругани в первом случае.