<?xml version="1.0"?>
<paste-with-annotations>
  <paste>
    <number>
      <integer>48267</integer>
    </number>
    <user>
      <string>housel</string>
    </user>
    <title>
      <string>SIGFPE handler on FreeBSD</string>
    </title>
    <contents>
      <string>#include &lt;sys/types.h&gt;
#include &lt;sys/signal.h&gt;
#include &lt;ucontext.h&gt;
#include &lt;ieeefp.h&gt;
#include &lt;fenv.h&gt;

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;unistd.h&gt;

static int zeroi(void);

void fpe_handler(int signal, struct __siginfo *si, void *sc)
{
  printf(&quot;fpe_handler signal=%d code=%d addr=%p\n&quot;,
	 signal, si-&gt;si_code, si-&gt;si_addr);
  fflush(stdout);
  _exit(1);
}

int main(int argc, char *argv) {
  struct sigaction sa, osa;
  sa.sa_flags = SA_SIGINFO;
  sa.sa_sigaction = fpe_handler;
  sigfillset(&amp;sa.sa_mask);
  if (sigaction(SIGFPE, &amp;sa, &amp;osa) != 0) {
    perror(&quot;sigaction&quot;);
    return 1;
  }
  
  printf(&quot;%d\n&quot;, 2000 / zeroi());

  return 0;
}

static int zeroi(void) {
  return 0;
}
</string>
    </contents>
    <universal-time>
      <integer>3399816485</integer>
    </universal-time>
    <channel>
      <string>#dylan</string>
    </channel>
    <colorization-mode>
      <string></string>
    </colorization-mode>
    <maybe-spam>
      <null/>
    </maybe-spam>
    <is-unicode>
      <null/>
    </is-unicode>
  </paste>
</paste-with-annotations>