1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-20 10:54:14 +01:00

LP-621 the __attribute__ fix does not work for isfinite(), only for isnan() and isinf().

This might be a compiler bug, but luckily it can be worked around.
This commit is contained in:
Eric Price 2021-08-14 21:17:16 +02:00
parent fd32fc79ba
commit 5b5e61c5b5

View File

@ -26,6 +26,9 @@
#ifndef PIOS_MATH_H
#define PIOS_MATH_H
#include <math.h>
// Generic float math constants
#define M_E_F 2.71828182845904523536028747135f /* e */
#define M_LOG2E_F 1.44269504088896340735992468100f /* log_2 (e) */
@ -79,12 +82,9 @@
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#ifndef isfinite
#include <math.h>
#endif
__attribute__((optimize("no-fast-math"))) static inline int IS_REAL(float f)
{
return isfinite(f);
return !(isnan(f) || isinf(f));
}
// Bitfield access