[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

g++ -fwrapv



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? Idąc dalej:
tohver@Su30:~/mpi$ cat test.cpp 
#include <iostream>

int main() {

 int i = 2147483648;
 i++;
 printf("%d\n", i);
 return i;

}
tohver@Su30:~/mpi$ g++ -ftrapv test.cpp 
tohver@Su30:~/mpi$ ./a.out 
-2147483647

Jeżeli dobrze rozumiem mana te opcje powinny zapobiegać obu przypadkom. O co
chodzi?

-- 
Pozdrawiam,

Krzysztof Andrelczyk



Reply to: