equal
deleted
inserted
replaced
|
1 --- stdcxx-4.2.1/etc/config/src/NO_DBL_TRAPS.cpp 2008-04-24 20:25:44.000000000 -0400 |
|
2 +++ stdcxx-4.2.1/etc/config/src/NO_DBL_TRAPS.cpp 2011-01-12 22:13:06.534845500 -0500 |
|
3 @@ -39,6 +39,11 @@ |
|
4 |
|
5 #include "nodbg.h" |
|
6 |
|
7 +#if defined(__SUNPRO_CC) |
|
8 +#include <sys/types.h> |
|
9 +#include <signal.h> |
|
10 +#endif |
|
11 + |
|
12 double dbl_get_zero (); |
|
13 double dbl_get_one (); |
|
14 |
|
15 @@ -56,33 +61,39 @@ |
|
16 dbl_inf = dbl_one / dbl_zero; |
|
17 |
|
18 // computation involving infinities that might trap |
|
19 - dbl_nan = dbl_zero * dbl_inf; // #3 |
|
20 dbl_nan = dbl_zero / dbl_zero; // #4a |
|
21 - dbl_nan = dbl_inf / dbl_inf; // #4b |
|
22 - dbl_nan = dbl_inf - dbl_inf; // #5 |
|
23 |
|
24 if (argc > 2) |
|
25 - return dbl_nan; |
|
26 + return -dbl_nan; |
|
27 |
|
28 if (argc > 1) |
|
29 return dbl_inf; |
|
30 |
|
31 +#if defined(__SUNPRO_CC) |
|
32 +#if defined((sun) || defined(__sun) || defined(__sun__) |
|
33 + kill(getpid(), SIGFPE); |
|
34 +#elif defined(linux) || defined(__linux) || defined(__linux__) |
|
35 + return 136; |
|
36 +#endif |
|
37 +#else |
|
38 // NEGATIVE test: successful exit status indicates a failure |
|
39 return 0; |
|
40 +#endif |
|
41 } |
|
42 |
|
43 // foil optimizers |
|
44 double dbl_get_zero () |
|
45 { |
|
46 - static double value = 0.0; |
|
47 + static double zero = 0.0; |
|
48 |
|
49 - return value; |
|
50 + return zero; |
|
51 } |
|
52 |
|
53 |
|
54 double dbl_get_one () |
|
55 { |
|
56 - static double value = 1.0; |
|
57 + static double one = 1.0; |
|
58 |
|
59 - return value; |
|
60 + return one; |
|
61 } |
|
62 + |