Division by zero no arroja SIGFPE

Tengo un pequeño programa que realiza la división de coma flotante por cero, así que espero SIGFPE.

#include <sys/types.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>

void signal_handler (int signo) {
    if(signo == SIGFPE) {
      std::cout << "Caught FPE\n";
    }
}

int main (void) {
  signal(SIGFPE,(*signal_handler));

  double b = 1.0;
  double c = 0.0;
  double d = b/c;
  std::cout << "d = "<< d << std::endl;
  return 0;
}

En realidad, obtuve el siguiente resultado:

d = inf

gcc versión 4.5.2 (Ubuntu / Linaro 4.5.2-8ubuntu4)

¿Qué debo hacer para lanzar SIGFPE en este caso? ¿De qué factores depende el comportamiento de la operación FP (indicadores del compilador / tipo de CPU, etc.)

Gracia

Respuestas a la pregunta(3)

Su respuesta a la pregunta