summaryrefslogtreecommitdiff
blob: 3ab8dfa1c840405be6da652e184cb14710cc76d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
From bfb857445e72230659493d3491970e3cb3c7eb9a Mon Sep 17 00:00:00 2001
From: Krzysztof Foltman <wdev@foltman.com>
Date: Fri, 2 Aug 2019 20:55:50 +0100
Subject: [PATCH] Compatibility: A possible fix for the clang++-8 issue.

--- a/src/calf/fixed_point.h
+++ b/src/calf/fixed_point.h
@@ -215,7 +215,7 @@ template<class T, int FracBits> class fixed_point {
     }
 
     template<class U, int UseBits> 
-    inline U lerp_table_lookup_int(U data[(1U<<IntBits)+1]) const {
+    inline U lerp_table_lookup_int(U *data) const {
         unsigned int pos = uipart();
         return lerp_by_fract_int<U, UseBits>(data[pos], data[pos+1]);
     }
@@ -223,19 +223,19 @@ template<class T, int FracBits> class fixed_point {
     /// Untested... I've started it to get a sin/cos readout for rotaryorgan, but decided to use table-less solution instead
     /// Do not assume it works, because it most probably doesn't
     template<class U, int UseBits> 
-    inline U lerp_table_lookup_int_shift(U data[(1U<<IntBits)+1], unsigned int shift) {
+    inline U lerp_table_lookup_int_shift(U *data, unsigned int shift) {
         unsigned int pos = (uipart() + shift) & ((1ULL << IntBits) - 1);
         return lerp_by_fract_int<U, UseBits>(data[pos], data[pos+1]);
     }
 
     template<class U> 
-    inline U lerp_table_lookup_float(U data[(1U<<IntBits)+1]) const {
+    inline U lerp_table_lookup_float(U *data) const {
         unsigned int pos = uipart();
         return data[pos] + (data[pos+1]-data[pos]) * fpart_as_double();
     }
 
     template<class U> 
-    inline U lerp_table_lookup_float_mask(U data[(1U<<IntBits)+1], unsigned int mask) const {
+    inline U lerp_table_lookup_float_mask(U *data, unsigned int mask) const {
         unsigned int pos = ui64part() & mask;
         // printf("full = %lld pos = %d + %f\n", value, pos, fpart_as_double());
         return data[pos] + (data[pos+1]-data[pos]) * fpart_as_double();