Когда я компилирую следующую программу на C ++, мне нужно добавить флаг -O2
, чтобы получить предупреждение о неинициализированной переменной. Почему это так?
unsigned long fac(unsigned long n)
{
unsigned long product;
while (n > 1)
{
product = product * n;
n = n - 1;
}
return product;
}
➜ a g++ --version
g++ (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2)
edit: Чтобы прояснить вопрос, я, конечно, включил предупреждение.