Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/ashowflat.php?Number=11332710&src=&showlite=
Дата изменения: Unknown
Дата индексирования: Tue Apr 12 04:40:18 2016
Кодировка: Windows-1251
INT_MIN / -1 = Floating point exception - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 1
Spin
он самый

Рег.: 17.09.2003
Сообщений: 14521
Рейтинг: 4387
  INT_MIN / -1 = Floating point exception
      30.01.2013 15:10
6

Впечатляет, хотя может и боян
code:
$ cat intmin.c #include <limits.h> int foo (int a, int b) { return a / b; } int main (void) { return foo (INT_MIN, -1); } $ gcc -O0 intmin.c -o intmin $ ./intmin Floating point exception $ $ gcc -O2 intmin.c -o intmin $ ./intmin $


а еще можно в 64битном bash выполнить вот это:
code:
$ ($((-2**63/-1))) Floating point exception $


а вот и ссылочка с дополнительными плюшками: http://avva.livejournal.com/2548306.html



- а этот ваш С++ - он функциональный?
- еще какой функциональный!
Basilio
GreenOne

Рег.: 14.10.2002
Сообщений: 13749
Из: Москва
Рейтинг: 3476
  Re: INT_MIN / -1 = Floating point exception [re: Spin]
      30.01.2013 15:17
3

-INT_MIN > INT_MAX, почему бы и нет?

Spin
он самый

Рег.: 17.09.2003
Сообщений: 14521
Рейтинг: 4387
  Re: INT_MIN / -1 = Floating point exception [re: Basilio]
      30.01.2013 15:19
 

да я и не против, просто впечатляет что при этом кидается эксепшн, что по-моему нелогично
ну и авторы баша судя по всему тоже не в курсе, раз деление на ноль заэкранировали проверкой, а вот такое - нет



- а этот ваш С++ - он функциональный?
- еще какой функциональный!
Hoochy
Безжалостный пездюк

Рег.: 06.07.2005
Сообщений: 1073
Рейтинг: 1996
  Re: INT_MIN / -1 = Floating point exception [re: Spin]
      30.01.2013 15:50
6

Это не эксепшн в терминах C++. Это просто сигнал SIGFPE. Название конечно неудачное выбрано для него =)

dtbeaver
латентный вантузоид

Рег.: 04.01.2005
Сообщений: 7267
Рейтинг: 8189
  Re: INT_MIN / -1 = Floating point exception [re: Spin]
      30.01.2013 15:53
8

а почему операции с int вызывают Floating exception?



unkulunkulu
unkulunkulunkulu

Рег.: 12.11.2006
Сообщений: 18453
Из: 13000
Рейтинг: 11759
  Re: INT_MIN / -1 = Floating point exception [re: Hoochy]
      30.01.2013 15:53
10

Quote:

Это не эксепшн в терминах C++.


ну да, было бы прикольно, если бы оно кидало эксепшен в терминах
 C++ из проги на C

Spin
он самый

Рег.: 17.09.2003
Сообщений: 14521
Рейтинг: 4387
  Re: INT_MIN / -1 = Floating point exception [re: dtbeaver]
      30.01.2013 16:49
 

думаю из списка сигналов больше всего подходит SIGFPE - вот его и кидают



- а этот ваш С++ - он функциональный?
- еще какой функциональный!
Rebble
ханжа

Рег.: 13.08.2004
Сообщений: 3115
Из: highway2hell
Рейтинг: 8250
  Re: INT_MIN / -1 = Floating point exception [re: dtbeaver]
      30.01.2013 17:37
3

Это особенность конкретной операционки на конкретной архитектуре

code:
DO_ERROR_INFO(X86_TRAP_DE, SIGFPE, "divide error", divide_error, FPE_INTDIV, regs->ip)




And so much crap makes you blind
Sevurrrra
Хранитель маяка

Рег.: 10.09.2007
Сообщений: 2050
Рейтинг: 2759
  Re: INT_MIN / -1 = Floating point exception [re: Rebble]
      30.01.2013 19:47
 

В ответ на:

Это особенность конкретной операционки на конкретной архитектуре



Посоны говорят, что на msvc11 / x86 тоже воспроизводится.

Spin
он самый

Рег.: 17.09.2003
Сообщений: 14521
Рейтинг: 4387
  Re: INT_MIN / -1 = Floating point exception [re: Sevurrrra]
      30.01.2013 20:29
 

он говорил о том, что целочисленное деление вот так странно мапится в Floating point exception в конкретной операционке
сам "баг" заключается в специфике работы процессорной функции x86 idiv - а это фича процессора, а не архитектуры операционки
каков аналог сигналов под виндой?



- а этот ваш С++ - он функциональный?
- еще какой функциональный!
unkulunkulu
unkulunkulunkulu

Рег.: 12.11.2006
Сообщений: 18453
Из: 13000
Рейтинг: 11759
  Re: INT_MIN / -1 = Floating point exception [re: Spin]
      30.01.2013 20:47
 

Quote:

каков аналог сигналов под виндой?


в данном случае вроде бы должен использоваться SEH

novikov
member

Рег.: 12.01.2007
Сообщений: 146
Из: спб
Рейтинг: 45
  Re: INT_MIN / -1 = Floating point exception [re: Spin]
      30.01.2013 22:05
-2

% $((-2**63/-1))
zsh: command not found: -9223372036854775808


Spin
он самый

Рег.: 17.09.2003
Сообщений: 14521
Рейтинг: 4387
  Re: INT_MIN / -1 = Floating point exception [re: novikov]
      31.01.2013 14:04
2

64битный?



- а этот ваш С++ - он функциональный?
- еще какой функциональный!
novikov
member

Рег.: 12.01.2007
Сообщений: 146
Из: спб
Рейтинг: 45
  Re: INT_MIN / -1 = Floating point exception [re: Spin]
      02.02.2013 20:29
 

ага; дабы развеять сомнения:
code:
% $[2**63]; $[2**63/-1]; $[2**64] zsh: command not found: -9223372036854775808 zsh: command not found: -9223372036854775808 zsh: command not found: 0


Spin
он самый

Рег.: 17.09.2003
Сообщений: 14521
Рейтинг: 4387
  Re: INT_MIN / -1 = Floating point exception [re: novikov]
      02.02.2013 20:50
5

на макоси баш от такого виснет в бесконечном цикле



- а этот ваш С++ - он функциональный?
- еще какой функциональный!
novikov
member

Рег.: 12.01.2007
Сообщений: 146
Из: спб
Рейтинг: 45
  Re: INT_MIN / -1 = Floating point exception [re: Spin]
      02.02.2013 21:26
2

жесть

Страницы: 1

Technical >> Development (Archive)

Дополнительная информация
0 зарегистрированных и 1 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы

Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в