LINUX.ORG.RU

Почему некоторые не любят gcc 2.96?


0

0

Уже во второй программе встречаю информацию о том, что она не будет компилироваться при помощи gcc версии 2.96. Это совпадение или некоторые почему-то не дружат с этой версией? А почему? Программы - FreeCraft и OpenOffice.

★★★★

По видимому речь идет о g++. Я знаю что g++ версий < 3.2 содержат некоторые баги связанные с выполнением dynamic_cast в конструкторе. Кроме того в случае того же С++, эти программы могут использовать некоторые фичи стандартного С++ которые еще не были реализованны в более старых версиях libstdc++.

bada
()

например:
#include <stdio.h>

class myclass {
public:
float value;
float & ref();
};

myclass
hepp(const float v0, const float v1)
{
myclass proj;

proj.ref() = 0.0f;
proj.ref() = -(v1+v0);

return proj;
}

float &
myclass::ref()
{
return this->value;
}

int
main(void)
{
myclass proj = hepp(2.0f, 4.0f);
return (proj.ref() < 0.0f) ? 0 : 1;
}

из configure скрипта Coin3d

anonymous
()

В своё время я столкнулся с gcc 2.96 в ASP 7.2. После компиляции им я даже не припомню что у меня заработало - всё вылетало в segfault.

Поставил gcc 2.95-3 из слаки - всё сухо и комфортно.

Rock
()

У меня был реальный пример глюкавости 2.96
Был примерно такой кусочек кода, в котором форкались процессы и наращивался счетчик. Когда ловился сигнал SIGCHLD счетчик уменьшался.
переменная счетчика было глобальная и объявлялась как sig_atomic_t.
При включении оптимизации начинались твариться чудеса с этим счетчиком, почему-то он иногда не уменьшался.
Без оптимизации и с оной (на других версиях) все работало.
А я блин половину кода перетрес, пока не убедился что все таки эти глюки появляются только с оптимизацией :(
С тех пор и не долюбливаю.

Dead ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.