[th/gcc4] apps fixing guide #1 - signed overflow.

Andrzej Krzysztofowicz ankry w green.mif.pg.gda.pl
Sob, 22 Kwi 2006, 19:10:46 CEST


=?iso-8859-2?q?Pawe=B3_Sikora?= wrote:
> On Saturday 22 April 2006 13:14, Andrzej Krzysztofowicz wrote:
> > Mozesz rozwinac temat i zasugerowac, jaki jest przenosny sposob weryfikacji
> > wystapienia przepelnienia dla zmiennych ze znakiem dzialajacy jednoczesnie
> > w C i w C++ ?
> 
> uzycie opcji -ftrapv (zaznaczam *trap* a nie *wrap*).
> z taką opcją kompilator generuje odwołania do bibliotecznych
> operacji matematycznych (duzy spadek na wydajności kodu),
> które mogą rzucić sygnałem. jednak póki co w gcc jest bład,
> który te wywołania optymalizuje (czyt. eliminuje) i w.w. opcja
> nie daje efektów. jak to poprawią, to dam znać.

Ale nie chodzi mi o to jakich opcji kompilacji uzywac, tylko czym zastepowac
kod zliczajacy bity w liczbach "signed" do wystapienia przepelnienia, zeby
dzialal zgodnie z oczekiwaniami, niezaleznie od typu danych, architektury,
czy wersji kompilatora; np.:

n=0;
while (i>=0) {
	i*=2;
	n++;
}

-- 
=======================================================================
  Andrzej M. Krzysztofowicz                  ankry w mif.pg.gda.pl
  phone (48)(58) 347 14 61
Faculty of Applied Phys. & Math.,   Gdansk University of Technology


Więcej informacji o liście dyskusyjnej pld-devel-pl