私はgccで以下をコンパイルしようとしています-pedantic-errors -pedantic -Wall -O2
#include <iostream>
void reset_uint32(uint32_t* pi)
{
char* c = (char*)(pi);
uint16_t* j = (uint16_t*)(c); // warning?
j[0] = 0;
j[1] = 0;
}
void foo()
{
uint32_t i = 1234;
reset_uint32(&i);
}
int main() {
foo();
}
しかし、厳密なエイリアシングの警告は表示されません。私も有効にしようとしました
-fstrict-aliasing
-Wstrict-aliasing
しかし、まだ警告はありません。これはバグですか?