Yes, I've seen it. Has to do with comparison of signed vs unsigned types for bytes ≥ 128.
Two ways to fix: use unsigned char
as your default type, e.g. re2c:define:YYCTYPE = "unsigned char";
, or -funsigned-char
(if using gcc
, other compilers have equivalent) as a compile flag. You can use the one that interferes with your existing code the least.