よくわからない警告が表示されました。警告は、署名されていないと思われるものを別の署名されていないものと比較することによって生成されます。
ソースは次のとおりです。
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
int main()
{
uint8_t *arr = malloc(8);
assert(arr);
/* fill arr[] with stuff */
if (arr[3] != (uint8_t)(~arr[2])) { // Warning is here
/* stuff */
}
return EXIT_SUCCESS;
}
次の手順を使用してビルドします。
user@linux:~ $ gcc -o test -Wall -Wextra test.c
test.c: In function ‘main’:
test.c:13:16: warning: comparison of promoted ~unsigned with unsigned [-Wsign-compare]
gcc バージョン 4.7.2 20121109 (Red Hat 4.7.2-8) を使用しています
上記の比較を修正するにはどうすればよいですか?