GCC 2.95.2 rozdily proti egcs 1.91.66 na RH 6.1

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Sobota Květen 13 21:33:11 CEST 2000


On Fri, 12 May 2000, Libor Chocholaty wrote:

> To jo, ale treba orig gcc v RH6.1 vyzadoval nekdy trosku nestandardni
> definice v pripade, ze jste mel typdefovanou strukturu jako nejaky typ a pak
> jste chtel vytvorit instanci toho typu, pak se mi obcas stavalo, ze kdyz jsem
> to napsal bes 'struct' tak mi klidne alokoval dve promenne ja stejne misto v
> pameti. Opravdu spatne se takova chyba hleda.

To, ze se dve promenne ocitnou na stejne lokaci v pameti neni nutne chyba
(a v pripade umistovani promennych do registru je to dokonce dost zadouci
optimalizace). Chyba je to pouze v pripade, ze mohou obe promenne v jeden
okamzik nabyvat hodnoty, ktera bude pouzita. Napr. v nasledujicim kusu
kodu je umisteni promennych "a" a "b" na jedno misto naprosto korektni:

void x(int);
void f() { int a, b; a = 1; x(a); b = 2; x(b); }

> Kvuli tomuhle parametru jsem upgradoval na gcc 2.95.2, starsi ho neznal. Ale
> asi to nepomuze, protoze on ma problem s volanim implicitnich destruktoru v
> nekterych pripadech. Pri uvolneni pameti to padne na SEGFAULT. Mam z toho
> peknou depku.

Implicitni destruktory? Ony existuji nejake explicitni destruktory? :)
(V kazdem pripade jestli mate nejaky kanonicky priklad, kdy se to chova
blbe, neni od veci to nahlasit jako chybu.)

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux