Счастливой отладки, ****

Sep 29, 2024 00:56

Знаете ли вы, что программа

#include

int f()
{
std::cerr << "f" << std::endl;
}

int main()
{
f();
return 0;
}

собранная в GCC12 с флагом O2 зацикливается в бесконечном цикле?

А программа

#include

bool a = true;
bool b = false;

int f()
{
if (a) {
if (b) {
std::cerr << "if" << std::endl;
} else {
std::cerr << "else1" << std::endl;
}
} else {
std::cerr << "else2" << std::endl;
}
}

int main()
{
f();
return 0;
}

собранная так же, выводит
else1
else2

?

А теперь представьте проект из десятков тысяч строк подобного кода, написанных давно и не вашей командой, который приходится застявлять работать после переезда с gcc4 на gcc12.

И ведь в debug-сборке работает же!

Зато есть повод помочь младшим коллегам и покопаться самой :)

#include, programming

Previous post Next post
Up