]> granicus.if.org Git - re2c/commit
Added -Wsentinel-in-midrule warning and 're2c:sentinel' configurations.
authorUlya Trofimovich <skvadrik@gmail.com>
Sat, 24 Aug 2019 23:53:16 +0000 (00:53 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Sun, 25 Aug 2019 09:22:09 +0000 (10:22 +0100)
commitde63b8baeda0acd2149bfe49ce0d713bf929d159
tree726bcfaaee4e333fecb63c8007077d0e20b347da
parent7648f8dd9eaee660ca85a003e7246ede7b987e63
Added -Wsentinel-in-midrule warning and 're2c:sentinel' configurations.

The new analysis is meant to detect potential reads past the end of buffer
resulting from erroneous rules that allow sentinel symbol to occur in the
middle of lexeme. The analysis is only activated in cases bounds checking
is disabled with 're2c:yyfill:enable = 0;' and EOF rule is not used.

For example:

    ['] [^']* [']   { ... }

This may be a naive way to match single-quoted strings; it would crash the
lexer on input like "'aaa\0" (without the closing single quote).
12 files changed:
bootstrap/src/options/parse_opts.cc
bootstrap/src/parse/lex_conf.cc
src/compile.cc
src/dfa/dead_rules.cc
src/dfa/dfa.h
src/msg/warn.cc
src/msg/warn.h
src/options/opt.cc
src/options/opt.h
src/options/parse_opts.re
src/parse/lex_conf.re
src/parse/scanner.h