From 15a0f6dea6f4f3c5adc9a1bc9e7e8be81cc49c48 Mon Sep 17 00:00:00 2001 From: Haru Date: Tue, 10 Dec 2013 19:48:55 +0100 Subject: Fixed several compiler warnings - Warnings detected thanks to Xcode's compiler settings (more strict by default) and clang, warnings mostly but not only related to data sizes on 64 bit systems, that were silenced until now by very lax compiler settings. - This also decreases by a great deal the amount of warnings produced by MSVC in x64 mode (for the adventurous ones who tried that) - Also fixed (or silenced in case of false positives) the potential issues pointed out by the (awesome) clang static analyzer. - Patch co-produced with Ind, I'm merging and committing in his place! Signed-off-by: Haru --- 3rdparty/libconfig/extra/gen/clangwarnings.patch | 36 ++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 3rdparty/libconfig/extra/gen/clangwarnings.patch (limited to '3rdparty/libconfig/extra/gen/clangwarnings.patch') diff --git a/3rdparty/libconfig/extra/gen/clangwarnings.patch b/3rdparty/libconfig/extra/gen/clangwarnings.patch new file mode 100644 index 000000000..65aef9a08 --- /dev/null +++ b/3rdparty/libconfig/extra/gen/clangwarnings.patch @@ -0,0 +1,36 @@ +diff --git a/grammar.c b/grammar.c +index 3595578..26444f8 100644 +--- a/grammar.c ++++ b/grammar.c +@@ -1187,9 +1187,7 @@ void libconfig_yyerror(void *scanner, struct parse_context *ctx, + YYUSE (ctx); + YYUSE (scan_ctx); + +- if (!yymsg) +- yymsg = "Deleting"; +- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); ++ YY_SYMBOL_PRINT (yymsg ? yymsg : "Deleting", yytype, yyvaluep, yylocationp); + + switch (yytype) + { +diff --git a/scanner.c b/scanner.c +index aebd34c..c3a717f 100644 +--- a/scanner.c ++++ b/scanner.c +@@ -1500,6 +1500,8 @@ static int yy_get_next_buffer (yyscan_t yyscanner) + else + ret_val = EOB_ACT_CONTINUE_SCAN; + ++#ifndef __clang_analyzer__ ++ // FIXME: Clang's static analyzer complains about leaking the result of libconfig_yyrealloc + if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); +@@ -1507,6 +1509,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } ++#endif // __clang_analyzer__ + + yyg->yy_n_chars += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; -- cgit v1.2.3-70-g09d2