From 0a5145133b067dc47feb664c75361f2e6985d6af Mon Sep 17 00:00:00 2001
From: Piotr Gregor <piotrek.gregor@gmail.com>
Date: Thu, 12 May 2016 01:09:12 +0100
Subject: [PATCH] FS-9152 [avmd] #fix warnings on FreeBSD

Use function __isnan to avoid __Generic
type extension on FreeBSD. Clang 3.4.1 complains
about -Wc++11-extensions even when it has them
defined.
---
 src/mod/applications/mod_avmd/avmd_desa2.c         | 5 ++++-
 src/mod/applications/mod_avmd/avmd_desa2_tweaked.c | 7 +++++--
 src/mod/applications/mod_avmd/mod_avmd.c           | 7 +++++--
 3 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/mod/applications/mod_avmd/avmd_desa2.c b/src/mod/applications/mod_avmd/avmd_desa2.c
index abecf6ee64..b1d19eb8ae 100644
--- a/src/mod/applications/mod_avmd/avmd_desa2.c
+++ b/src/mod/applications/mod_avmd/avmd_desa2.c
@@ -5,8 +5,11 @@
 #ifdef WIN32
 #include <float.h>
 #define ISNAN(x) (!!(_isnan(x)))
+#define ISINF(x) (isinf(x))
 #else
-#define ISNAN(x) (isnan(x))
+int __isnan(double);
+#define ISNAN(x) (__isnan(x))
+#define ISINF(x) (__isinf(x))
 #endif
 #include "avmd_buffer.h"
 #include "avmd_desa2.h"
diff --git a/src/mod/applications/mod_avmd/avmd_desa2_tweaked.c b/src/mod/applications/mod_avmd/avmd_desa2_tweaked.c
index 0b75b9eed1..8eae1753f3 100644
--- a/src/mod/applications/mod_avmd/avmd_desa2_tweaked.c
+++ b/src/mod/applications/mod_avmd/avmd_desa2_tweaked.c
@@ -5,8 +5,11 @@
 #ifdef WIN32
 #include <float.h>
 #define ISNAN(x) (!!(_isnan(x)))
+#define ISINF(x) (isinf(x))
 #else
-#define ISNAN(x) (isnan(x))
+int __isnan(double);
+#define ISNAN(x) (__isnan(x))
+#define ISINF(x) (__isinf(x))
 #endif
 #include "avmd_buffer.h"
 #include "avmd_desa2_tweaked.h"
@@ -48,7 +51,7 @@ avmd_desa2_tweaked(circ_buffer_t *b, size_t i)
  we do simplified, modified for speed version : */
 
     result = n/d;
-    if (isinf(result)) {
+    if (ISINF(result)) {
         if (n < 0.0)
             return -10.0;
         else
diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c
index 75c432ec61..de896e8fbb 100644
--- a/src/mod/applications/mod_avmd/mod_avmd.c
+++ b/src/mod/applications/mod_avmd/mod_avmd.c
@@ -38,8 +38,11 @@
 #ifdef WIN32
 #include <float.h>
 #define ISNAN(x) (!!(_isnan(x)))
+#define ISINF(x) (isinf(x))
 #else
-#define ISNAN(x) (isnan(x))
+int __isnan(double);
+#define ISNAN(x) (__isnan(x))
+#define ISINF(x) (__isinf(x))
 #endif
 
 
@@ -1471,7 +1474,7 @@ static void avmd_process(avmd_session_t *s, switch_frame_t *frame)
                 sample_to_skip_n = AVMD_SAMLPE_TO_SKIP_N;
 #endif
 			} else {
-                if (isnan(omega)) {
+                if (ISNAN(omega)) {
 #ifdef AVMD_DEBUG
 	                switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(s->session),
                             SWITCH_LOG_DEBUG, "<<< AVMD, SKIP NaN >>>\n");