diff --git a/Rakefile b/Rakefile index 813a6d9b..8de6dedf 100644 --- a/Rakefile +++ b/Rakefile @@ -282,7 +282,8 @@ else end src = File.read("parser.c").gsub(/[ \t]+$/, '') src.gsub!(/^static const int (JSON_.*=.*);$/, 'enum {\1};') - src.gsub!(/0 <= \(\*p\) && \(\*p\) <= 31/, "0 <= (signed char)(*p) && (*p) <= 31") + src.gsub!(/^(static const char) (_JSON(?:_\w+)?_nfa_\w+)(?=\[\] =)/, '\1 MAYBE_UNUSED(\2)') + src.gsub!(/0 <= ([\( ]+\*[\( ]*p\)+) && \1 <= 31/, "0 <= (signed char)(*(p)) && (*(p)) <= 31") src[0, 0] = "/* This file is automatically generated from parser.rl by using ragel */" File.open("parser.c", "w") {|f| f.print src} end diff --git a/ext/json/ext/parser/parser.c b/ext/json/ext/parser/parser.c index a15d20a4..b1dc8810 100644 --- a/ext/json/ext/parser/parser.c +++ b/ext/json/ext/parser/parser.c @@ -109,22 +109,22 @@ enum {JSON_object_error = 0}; enum {JSON_object_en_main = 1}; -static const char _JSON_object_nfa_targs[] = { +static const char MAYBE_UNUSED(_JSON_object_nfa_targs)[] = { 0, 0 }; -static const char _JSON_object_nfa_offsets[] = { +static const char MAYBE_UNUSED(_JSON_object_nfa_offsets)[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -static const char _JSON_object_nfa_push_actions[] = { +static const char MAYBE_UNUSED(_JSON_object_nfa_push_actions)[] = { 0, 0 }; -static const char _JSON_object_nfa_pop_trans[] = { +static const char MAYBE_UNUSED(_JSON_object_nfa_pop_trans)[] = { 0, 0 }; @@ -767,22 +767,22 @@ enum {JSON_value_error = 0}; enum {JSON_value_en_main = 1}; -static const char _JSON_value_nfa_targs[] = { +static const char MAYBE_UNUSED(_JSON_value_nfa_targs)[] = { 0, 0 }; -static const char _JSON_value_nfa_offsets[] = { +static const char MAYBE_UNUSED(_JSON_value_nfa_offsets)[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -static const char _JSON_value_nfa_push_actions[] = { +static const char MAYBE_UNUSED(_JSON_value_nfa_push_actions)[] = { 0, 0 }; -static const char _JSON_value_nfa_pop_trans[] = { +static const char MAYBE_UNUSED(_JSON_value_nfa_pop_trans)[] = { 0, 0 }; @@ -1429,19 +1429,19 @@ enum {JSON_integer_error = 0}; enum {JSON_integer_en_main = 1}; -static const char _JSON_integer_nfa_targs[] = { +static const char MAYBE_UNUSED(_JSON_integer_nfa_targs)[] = { 0, 0 }; -static const char _JSON_integer_nfa_offsets[] = { +static const char MAYBE_UNUSED(_JSON_integer_nfa_offsets)[] = { 0, 0, 0, 0, 0, 0, 0 }; -static const char _JSON_integer_nfa_push_actions[] = { +static const char MAYBE_UNUSED(_JSON_integer_nfa_push_actions)[] = { 0, 0 }; -static const char _JSON_integer_nfa_pop_trans[] = { +static const char MAYBE_UNUSED(_JSON_integer_nfa_pop_trans)[] = { 0, 0 }; @@ -1582,20 +1582,20 @@ enum {JSON_float_error = 0}; enum {JSON_float_en_main = 1}; -static const char _JSON_float_nfa_targs[] = { +static const char MAYBE_UNUSED(_JSON_float_nfa_targs)[] = { 0, 0 }; -static const char _JSON_float_nfa_offsets[] = { +static const char MAYBE_UNUSED(_JSON_float_nfa_offsets)[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -static const char _JSON_float_nfa_push_actions[] = { +static const char MAYBE_UNUSED(_JSON_float_nfa_push_actions)[] = { 0, 0 }; -static const char _JSON_float_nfa_pop_trans[] = { +static const char MAYBE_UNUSED(_JSON_float_nfa_pop_trans)[] = { 0, 0 }; @@ -1893,21 +1893,21 @@ enum {JSON_array_error = 0}; enum {JSON_array_en_main = 1}; -static const char _JSON_array_nfa_targs[] = { +static const char MAYBE_UNUSED(_JSON_array_nfa_targs)[] = { 0, 0 }; -static const char _JSON_array_nfa_offsets[] = { +static const char MAYBE_UNUSED(_JSON_array_nfa_offsets)[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -static const char _JSON_array_nfa_push_actions[] = { +static const char MAYBE_UNUSED(_JSON_array_nfa_push_actions)[] = { 0, 0 }; -static const char _JSON_array_nfa_pop_trans[] = { +static const char MAYBE_UNUSED(_JSON_array_nfa_pop_trans)[] = { 0, 0 }; @@ -2498,20 +2498,20 @@ enum {JSON_string_error = 0}; enum {JSON_string_en_main = 1}; -static const char _JSON_string_nfa_targs[] = { +static const char MAYBE_UNUSED(_JSON_string_nfa_targs)[] = { 0, 0 }; -static const char _JSON_string_nfa_offsets[] = { +static const char MAYBE_UNUSED(_JSON_string_nfa_offsets)[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -static const char _JSON_string_nfa_push_actions[] = { +static const char MAYBE_UNUSED(_JSON_string_nfa_push_actions)[] = { 0, 0 }; -static const char _JSON_string_nfa_pop_trans[] = { +static const char MAYBE_UNUSED(_JSON_string_nfa_pop_trans)[] = { 0, 0 }; @@ -2594,7 +2594,7 @@ static char *JSON_parse_string(JSON_Parser *json, char *p, char *pe, VALUE *resu goto st3; } } - if ( 0 <= ( (*( p))) && ( (*( p))) <= 31 ) { + if ( 0 <= (signed char)(*(p)) && (*(p)) <= 31 ) { goto st0; } { @@ -2634,7 +2634,7 @@ static char *JSON_parse_string(JSON_Parser *json, char *p, char *pe, VALUE *resu if ( ( (*( p))) == 117 ) { goto st4; } - if ( 0 <= ( (*( p))) && ( (*( p))) <= 31 ) { + if ( 0 <= (signed char)(*(p)) && (*(p)) <= 31 ) { goto st0; } { @@ -2924,20 +2924,20 @@ enum {JSON_error = 0}; enum {JSON_en_main = 1}; -static const char _JSON_nfa_targs[] = { +static const char MAYBE_UNUSED(_JSON_nfa_targs)[] = { 0, 0 }; -static const char _JSON_nfa_offsets[] = { +static const char MAYBE_UNUSED(_JSON_nfa_offsets)[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -static const char _JSON_nfa_push_actions[] = { +static const char MAYBE_UNUSED(_JSON_nfa_push_actions)[] = { 0, 0 }; -static const char _JSON_nfa_pop_trans[] = { +static const char MAYBE_UNUSED(_JSON_nfa_pop_trans)[] = { 0, 0 }; diff --git a/ext/json/ext/parser/parser.h b/ext/json/ext/parser/parser.h index 0992bbf6..92ed3fdc 100644 --- a/ext/json/ext/parser/parser.h +++ b/ext/json/ext/parser/parser.h @@ -13,6 +13,10 @@ #include "st.h" #endif +#ifndef MAYBE_UNUSED +# define MAYBE_UNUSED(x) x +#endif + #define option_given_p(opts, key) RTEST(rb_funcall(opts, i_key_p, 1, key)) /* unicode */