summaryrefslogtreecommitdiff
path: root/apps/codecs/libfaad
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libfaad')
-rw-r--r--apps/codecs/libfaad/cfft.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/apps/codecs/libfaad/cfft.c b/apps/codecs/libfaad/cfft.c
index eecfe4b..0391b1c 100644
--- a/apps/codecs/libfaad/cfft.c
+++ b/apps/codecs/libfaad/cfft.c
@@ -847,14 +847,23 @@ static INLINE void cfftf1neg(uint16_t n, complex_t *c, complex_t *ch,
}
}
+#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 2) && (__GNUC_PATCHLEVEL__ == 3)
+/* To me (Daniel S) this looks like a compiler error/problem so we only
+ silence it this way on this specific compiler version we know causes this */
+#define COMPLEXPTR *(const complex_t **)
+#else
+#define COMPLEXPTR (const complex_t *)
+#endif
+
+
void cfftf(cfft_info *cfft, complex_t *c)
{
- cfftf1neg(cfft->n, c, cfft->work, (const uint16_t*)cfft->ifac, (const complex_t*)cfft->tab, -1);
+ cfftf1neg(cfft->n, c, cfft->work, (const uint16_t*)cfft->ifac, COMPLEXPTR cfft->tab, -1);
}
void cfftb(cfft_info *cfft, complex_t *c)
{
- cfftf1pos(cfft->n, c, cfft->work, (const uint16_t*)cfft->ifac, (const complex_t*)cfft->tab, +1);
+ cfftf1pos(cfft->n, c, cfft->work, (const uint16_t*)cfft->ifac, COMPLEXPTR cfft->tab, +1);
}
static void cffti1(uint16_t n, complex_t *wa, uint16_t *ifac)