diff --git a/gcc5.rc2.patch b/gcc5.rc2.patch new file mode 100644 index 0000000..8152337 --- /dev/null +++ b/gcc5.rc2.patch @@ -0,0 +1,125 @@ +diff --git a/channels/chan_sip.c b/channels/chan_sip.c +index bd694ec..4c25ec2 100644 +--- a/channels/chan_sip.c ++++ b/channels/chan_sip.c +@@ -9595,7 +9595,8 @@ static int parse_request(struct sip_request *req) + { + char *c = ast_str_buffer(req->data); + ptrdiff_t *dst = req->header; +- int i = 0, lim = SIP_MAX_HEADERS - 1; ++ int i = 0; ++ unsigned int lim = SIP_MAX_HEADERS - 1; + unsigned int skipping_headers = 0; + ptrdiff_t current_header_offset = 0; + char *previous_header = ""; +diff --git a/include/asterisk/inline_api.h b/include/asterisk/inline_api.h +index d76dfa0..291a838 100644 +--- a/include/asterisk/inline_api.h ++++ b/include/asterisk/inline_api.h +@@ -48,7 +48,7 @@ + #if !defined(LOW_MEMORY) && !defined(DISABLE_INLINE) + + #if !defined(AST_API_MODULE) +-#if defined(__clang__) ++#if defined(__clang__) || defined(__GNUC_STDC_INLINE__) + #define AST_INLINE_API(hdr, body) static hdr; static inline hdr body + #else /* if defined(__clang__) */ + #define AST_INLINE_API(hdr, body) hdr; extern inline hdr body +diff --git a/main/ccss.c b/main/ccss.c +index 7f63690..ff5739a 100644 +--- a/main/ccss.c ++++ b/main/ccss.c +@@ -825,7 +825,7 @@ int ast_cc_set_param(struct ast_cc_config_params *params, const char * const nam + return 0; + } + +- if (!sscanf(value, "%30u", &value_as_uint) == 1) { ++ if (sscanf(value, "%30u", &value_as_uint) != 1) { + return -1; + } + +diff --git a/main/dsp.c b/main/dsp.c +index a329dbb..335fb3d 100644 +--- a/main/dsp.c ++++ b/main/dsp.c +@@ -112,9 +112,11 @@ static struct progalias { + { "uk", PROG_MODE_UK }, + }; + ++#define FREQ_ARRAY_SIZE 7 ++ + static struct progress { + enum gsamp_size size; +- int freqs[7]; ++ int freqs[FREQ_ARRAY_SIZE]; + } modes[] = { + { GSAMP_SIZE_NA, { 350, 440, 480, 620, 950, 1400, 1800 } }, /*!< North America */ + { GSAMP_SIZE_CR, { 425 } }, /*!< Costa Rica, Brazil */ +@@ -389,7 +391,7 @@ struct ast_dsp { + struct ast_dsp_busy_pattern busy_cadence; + int historicnoise[DSP_HISTORY]; + int historicsilence[DSP_HISTORY]; +- goertzel_state_t freqs[7]; ++ goertzel_state_t freqs[FREQ_ARRAY_SIZE]; + int freqcount; + int gsamps; + enum gsamp_size gsamp_size; +@@ -1036,6 +1038,8 @@ static int __ast_dsp_call_progress(struct ast_dsp *dsp, short *s, int len) + int pass; + int newstate = DSP_TONE_STATE_SILENCE; + int res = 0; ++ int freqcount = dsp->freqcount > FREQ_ARRAY_SIZE ? FREQ_ARRAY_SIZE : dsp->freqcount; ++ + while (len) { + /* Take the lesser of the number of samples we need and what we have */ + pass = len; +@@ -1045,7 +1049,7 @@ static int __ast_dsp_call_progress(struct ast_dsp *dsp, short *s, int len) + for (x = 0; x < pass; x++) { + samp = s[x]; + dsp->genergy += (int32_t) samp * (int32_t) samp; +- for (y = 0; y < dsp->freqcount; y++) { ++ for (y = 0; y < freqcount; y++) { + goertzel_sample(&dsp->freqs[y], samp); + } + } +@@ -1053,8 +1057,8 @@ static int __ast_dsp_call_progress(struct ast_dsp *dsp, short *s, int len) + dsp->gsamps += pass; + len -= pass; + if (dsp->gsamps == dsp->gsamp_size) { +- float hz[7]; +- for (y = 0; y < 7; y++) { ++ float hz[FREQ_ARRAY_SIZE]; ++ for (y = 0; y < FREQ_ARRAY_SIZE; y++) { + hz[y] = goertzel_result(&dsp->freqs[y]); + } + switch (dsp->progmode) { +@@ -1642,7 +1646,7 @@ static void ast_dsp_prog_reset(struct ast_dsp *dsp) + + dsp->gsamp_size = modes[dsp->progmode].size; + dsp->gsamps = 0; +- for (x = 0; x < ARRAY_LEN(modes[dsp->progmode].freqs); x++) { ++ for (x = 0; x < FREQ_ARRAY_SIZE; x++) { + if (modes[dsp->progmode].freqs[x]) { + goertzel_init(&dsp->freqs[x], (float)modes[dsp->progmode].freqs[x], dsp->sample_rate); + max = x + 1; +@@ -1668,6 +1672,7 @@ static struct ast_dsp *__ast_dsp_new(unsigned int sample_rate) + dsp->digitmode = DSP_DIGITMODE_DTMF; + dsp->faxmode = DSP_FAXMODE_DETECT_CNG; + dsp->sample_rate = sample_rate; ++ dsp->freqcount = 0; + /* Initialize digit detector */ + ast_digit_detect_init(&dsp->digit_state, dsp->digitmode & DSP_DIGITMODE_MF, dsp->sample_rate); + dsp->display_inband_dtmf_warning = 1; +diff --git a/main/manager.c b/main/manager.c +index 8fa1942..be780e7 100644 +--- a/main/manager.c ++++ b/main/manager.c +@@ -4785,7 +4785,7 @@ static int action_atxfer(struct mansession *s, const struct message *m) + static int check_blacklist(const char *cmd) + { + char *cmd_copy, *cur_cmd; +- char *cmd_words[MAX_BLACKLIST_CMD_LEN] = { NULL, }; ++ char *cmd_words[AST_MAX_CMD_LEN] = { NULL, }; + int i; + + cmd_copy = ast_strdupa(cmd);