mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
8bd27c547c
Ragel generates a code `0 <= (*p)` where `*p` is char. As char is unsigned by default on arm and RISC-V, it is warned by gcc: ``` compiling parser.c parser.c: In function ‘JSON_parse_string’: parser.c:1566:2: warning: comparison is always true due to limited range of data type [-Wtype-limits] if ( 0 <= (*p) && (*p) <= 31 ) ^ parser.c:1596:2: warning: comparison is always true due to limited range of data type [-Wtype-limits] if ( 0 <= (*p) && (*p) <= 31 ) ^ ``` This change removes the warning by substituting the condition with `0 <= (signed char)(*p)`.
12 lines
383 B
Makefile
12 lines
383 B
Makefile
RAGEL = ragel
|
|
|
|
.SUFFIXES: .rl
|
|
|
|
.rl.c:
|
|
$(RAGEL) -G2 $<
|
|
$(BASERUBY) -pli -e '$$_.sub!(/[ \t]+$$/, "")' \
|
|
-e '$$_.sub!(/^static const int (JSON_.*=.*);$$/, "enum {\\1};")' \
|
|
-e '$$_.sub!(/0 <= \(\*p\) && \(\*p\) <= 31/, "0 <= (signed char)(*p) && (*p) <= 31")' \
|
|
-e '$$_ = "/* This file is automatically generated from parser.rl by using ragel */" + $$_ if $$. == 1' $@
|
|
|
|
parser.c:
|