82f9255f23ed21c7392b256037cca56b8a807831
[fw/sdcc] / device / lib / _fs2slong.c
1 #include <limits.h>
2
3 /* convert float to signed long */
4 signed long __fs2slong (float f) {
5
6   if (!f)
7     return 0;
8
9   if (f<0) {
10     if (f<=LONG_MIN)
11       return LONG_MIN;
12     return -__fs2ulong(-f);
13   } else {
14     if (f>=LONG_MAX)
15       return LONG_MAX;
16     return __fs2ulong(f);
17   }
18 }