Adding matherr exception handler function to avoid error messages when
[dyninst.git] / common / h / matherr.h
1 #include <math.h>
2
3 //
4 // matherr is a user defined exception handler for the math library.
5 // if it returns 0, the matherr library do something about the arithmetic
6 // exception. If it returns 1, it does not. We use this function here
7 // to avoid the error messages produced by sqrt(-3). It is only turned on
8 // just before the call to sqrt(-3), and it is inmediately turned off
9 // afterwards.
10 // NOTE: The file "matherr.h" should be included before "main", otherwise
11 // the customized matherr would not get called.
12 //
13
14 bool matherr_flag=false;
15
16 int matherr(struct exception *x) {
17   if ((x->type == DOMAIN) && !strcmp(x->name, "sqrt")) {
18     if (matherr_flag)
19       return(1);
20   } 
21   return(0);
22 }
23