On Sat, Apr 22, 2006 at 11:24:48AM +0200, Paweł Sikora wrote: > ostatnio widzę, że dużo na bugzilli gcc ludzie zgłaszają dużo > błędów w stylu "moja aplikacja na gcc4 robi kuku, a na 3.x było ok". > bardzo często są ta programy po prostu błędne podług standardów, > stąd też postanowiłem nieco przybliżyć ten temat deweloperom pld, > by szybciej i łatwiej w Th naprawiać niespodziewane zachowanie > aplikacji, tudzież kuku zwane potocznie GPF-em :) > > rozważmy pierwszy załączony przykład: > > $ g++ signed_overflow_1.cpp; ./a.out > > b = (0x80000000) -2147483648 > 10 - b = (0x8000000a) -2147483638 < 0 is true. > b - 10 = (0x7ffffff6) +2147483638 < 0 is true. > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > tu zapewne niektórym zapalił się pytajnik > i myslą sobie jak do cholery to się mogło stać :) > > pozwole sobię zacytować standard: > > [ cite C++ standard / $5.5 ]
To dotyczy tylko C++ czy także C? Gdzieś widziałem sprawdzanie przepełnienia zmiennej przez porównanie ((x+n) < x) albo ((x+n) < 0). -- Jakub Bogusz http://qboosh.cs.net.pl/ _______________________________________________ pld-devel-pl mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl
