Strict aliasling warning on gcc 4.6.1 bug

Я пытаюсь скомпилировать следующее на 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

но все равно никаких предупреждений. Это ошибка?

6
задан user1086635 18 December 2011 в 17:37
поделиться