llvm-project/llvm/test/FileCheck
Joel E. Denny 5df55bc7a4 [FileCheck] Fix isalpha/isalnum calls
D79276 caused the following builder to fail:

  http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/23489

Specifically, FileCheck dumped stack in the following tests:

  LLVM :: MC/Mips/micromips-jump-pc-region.s
  LLVM :: MC/Mips/mips-jump-pc-region.s

Those tests contained characters encoded as 160 but that render (at
least for me in vim) like a single space (32).  Those characters
appeared between the `#` and `RUN:` on several lines, and D79276
caused FileCheck to process those lines differently: `RUN:` is a
comment directive.  As a result, D79276 caused FileCheck to start
calling is `isalnum` on those characters.

The problem is that FileCheck calls `isalnum` on type `char` without
casting to `unsigned char` first, so it sign-extends 160 beyond what
`unsigned char` or `EOF` can represent.  C says that has undefined
behavior.  This problem is general to FileCheck's prefix parsing and
so exists independently of D79276.

524457edbc fixed the above tests.  This patch changes FileCheck to
use LLVM's replacements for `ctype.h` functions, and it adds tests for
cases that are representative with or without D79276.

Reviewed By: jhenderson, thopre, efriedma

Differential Revision: https://reviews.llvm.org/D79810
2020-05-14 20:24:09 -04:00
..
comment [FileCheck] Support comment directives 2020-05-13 11:29:48 -04:00
bad-char.txt [FileCheck] Fix isalpha/isalnum calls 2020-05-14 20:24:09 -04:00
check-a-b-has-b.txt
check-b-a-has-b.txt
check-count.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
check-dag-multi-prefix-2.txt
check-dag-multi-prefix.txt
check-dag-not-dag.txt
check-dag-overlap-torture.txt
check-dag-overlap.txt
check-dag-substring-prefix.txt
check-dag-xfails.txt
check-dag.txt
check-empty-tag.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
check-empty.txt Improve error message of FileCheck when stdin is empty 2020-02-04 11:14:55 +00:00
check-empty2.txt
check-ignore-case.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
check-label-dag-capture.txt
check-label-dag.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
check-label.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
check-multi-prefix-label.txt
check-multiple-prefixes-mixed.txt
check-multiple-prefixes-nomatch-2.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
check-multiple-prefixes-nomatch.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
check-multiple-prefixes-substr.txt
check-not-diaginfo.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
check-prefixes.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
check-substring-multi-prefix-2.txt
check-substring-multi-prefix.txt
dos-style-eol.txt
dump-input-annotations.txt [FileCheck] Fix --dump-input annotation sort per input line 2020-04-16 15:39:35 -04:00
dump-input-enable.txt [FileCheck] Given multiple -dump-input, prefer most verbose 2019-12-03 14:21:13 -05:00
empty-regex-match-at-start.txt
envvar-opts.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
first-character-match.txt [FileCheck] Support comment directives 2020-05-13 11:29:48 -04:00
implicit-check-not.txt [FileCheck] - Fix the false positive when -implicit-check-not is used with an unknown -check-prefix. 2020-04-16 15:00:50 +03:00
line-count-2.txt
line-count.txt FileCheck [9/12]: Add support for matching formats 2020-01-24 14:15:28 +00:00
lit.local.cfg [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
match-full-lines.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
multiple-missing-prefixes.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
next-no-match.txt
no-check-file.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
no-multi-suffixes.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
numeric-defines-diagnostics.txt [FileCheck] Add missing %ProtectFileCheckOutput to FileCheck tests 2020-03-31 17:29:11 -04:00
numeric-defines.txt FileCheck [9/12]: Add support for matching formats 2020-01-24 14:15:28 +00:00
numeric-expression.txt [FileCheck] Better diagnostic for format conflict 2020-04-15 13:46:45 +01:00
opt-color.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
regex-brackets.txt
regex-no-match.txt
same.txt
separate-multi-prefix.txt
simple-var-capture.txt
string-defines-diagnostics.txt FileCheck [9/12]: Add support for matching formats 2020-01-24 14:15:28 +00:00
string-defines.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
two-checks-for-same-match.txt
validate-check-prefix.txt [FileCheck] Support comment directives 2020-05-13 11:29:48 -04:00
var-ref-same-line.txt
var-scope.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00
verbose.txt [FileCheck] Make FILECHECK_OPTS useful for its test suite 2019-11-21 18:01:12 -05:00