Fix inline functions to use 'static inline'

With just 'inline', if the compiler decides not to inline them, it isn't
required to emit them at all. For some targets with -Os that is causing
build failures, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86360.

Perhaps we might consider using '__attribute__((always_inline))' for
GCC builds, but 'static inline' is a good start.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
This commit is contained in:
David Woodhouse 2018-06-28 16:43:24 +01:00 committed by Steve Markgraf
parent 8a26abaf79
commit 9047eef701
2 changed files with 5 additions and 5 deletions

View File

@ -183,7 +183,7 @@ int magnitute(uint8_t *buf, int len)
return len/2; return len/2;
} }
inline uint16_t single_manchester(uint16_t a, uint16_t b, uint16_t c, uint16_t d) static inline uint16_t single_manchester(uint16_t a, uint16_t b, uint16_t c, uint16_t d)
/* takes 4 consecutive real samples, return 0 or 1, BADSAMPLE on error */ /* takes 4 consecutive real samples, return 0 or 1, BADSAMPLE on error */
{ {
int bit, bit_p; int bit, bit_p;
@ -224,17 +224,17 @@ inline uint16_t single_manchester(uint16_t a, uint16_t b, uint16_t c, uint16_t d
return BADSAMPLE; return BADSAMPLE;
} }
inline uint16_t min16(uint16_t a, uint16_t b) static inline uint16_t min16(uint16_t a, uint16_t b)
{ {
return a<b ? a : b; return a<b ? a : b;
} }
inline uint16_t max16(uint16_t a, uint16_t b) static inline uint16_t max16(uint16_t a, uint16_t b)
{ {
return a>b ? a : b; return a>b ? a : b;
} }
inline int preamble(uint16_t *buf, int i) static inline int preamble(uint16_t *buf, int i)
/* returns 0/1 for preamble at index i */ /* returns 0/1 for preamble at index i */
{ {
int i2; int i2;

View File

@ -250,7 +250,7 @@ void sine_table(int size)
} }
} }
inline int16_t FIX_MPY(int16_t a, int16_t b) static inline int16_t FIX_MPY(int16_t a, int16_t b)
/* fixed point multiply and scale */ /* fixed point multiply and scale */
{ {
int c = ((int)a * (int)b) >> 14; int c = ((int)a * (int)b) >> 14;