added makenan.C
[dyninst.git] / pdutil / src / makenan.C
1 #include "util/h/makenan.h"
2 #include "util/h/matherr.h"
3 #include "util/h/headers.h"
4
5 float f_paradyn_nan = 0;
6 bool nan_created = false;
7 bool matherr_flag = false;
8
9 float make_Nan() {
10     if(!nan_created){
11     matherr_flag = true;
12     f_paradyn_nan = sqrt(-3);
13     matherr_flag = false;
14     nan_created = true;
15     }
16     assert(isnan(f_paradyn_nan));
17     return f_paradyn_nan;
18 }
19
20
21 int matherr(struct exception *x) {
22   if ((x->type == DOMAIN) && !P_strcmp(x->name, "sqrt")) {
23       if (matherr_flag)
24             return(1);
25   }
26   return(0);
27 }
28
29