Re: g++ -fwrapv
Dnia 23-03-2006, czw o godzinie 04:45 +0100, Efrum napisał(a):
> Problem nie jest czysto debianowy ale może ktoś będzie wiedział co się dzieje.
> tohver@Su30:~/mpi$ cat test.cpp
> #include <iostream>
>
> int main() {
>
> int i = -2147483648;
> int j = -1;
> printf("%d\n", i / j);
> return i / j;
>
> }
> tohver@Su30:~/mpi$ g++ -fwrapv test.cpp
> tohver@Su30:~/mpi$ ./a.out
> Floating point exception
>
> Dlaczego ta opcja nie działa?
z man:
-fwrapv
This option instructs the compiler to assume that signed arithmetic
overflow of addition, subtraction and multiplication wraps around
using twos-complement representation. This flag enables some opti-
mizations and disables others. This option is enabled by default
for the Java front-end, as required by the Java language specifica-
tion.
nie ma mowy o dzieleniu. przy odejmowaniu sprawdziłem i działa, więc
pewnie i przy reszcie opisanych działa i "przekręca" wartość na dodatnią
z opisem drugiego przykładu już mnie widzę kolega z listy wyprzedził :)
--
mirosław boruta
rlu: #344083
Reply to: