FileCheck, PR5239: Try to find the intended match on failures, but looking for a
authorDaniel Dunbar <daniel@zuster.org>
Sun, 22 Nov 2009 22:59:26 +0000 (22:59 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Sun, 22 Nov 2009 22:59:26 +0000 (22:59 +0000)
commitead2dacc9ee028906cb104c8c3d66ccbbebe6b10
treec4d27ba21f217a688212831a32d1c11f546d1eab
parentfafe93c8bcbc538573bc5e890f24f9869a11f846
FileCheck, PR5239: Try to find the intended match on failures, but looking for a
good nearby fuzzy match. Frequently the input is nearly correct, and just
showing the user the a nearby sensible match is enough to diagnose the problem.
 - The "fuzzyness" is pretty simple and arbitrary, but worked on my three test
   cases. If you encounter problems, or places you think FileCheck should have
   guessed but didn't, please add test cases to PR5239.

For example, previously FileCheck would report this:
--
t.cpp:21:55: error: expected string not found in input
// CHECK: define void @_Z2f25f2_s1([[i64_i64_ty]] %a0)
                                                      ^
<stdin>:19:30: note: scanning from here
define void @_Z2f15f1_s1(%1) nounwind {
                             ^
<stdin>:19:30: note: with variable "i64_i64_ty" equal to "%0"
--

and now it also reports this:
--
<stdin>:27:1: note: possible intended match here
define void @_Z2f25f2_s1(%0) nounwind {
^
--

which makes it clear that the CHECK just has an extra ' %a0' in it, without
having to check the input.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89631 91177308-0d34-0410-b5e6-96231b3b80d8
utils/FileCheck/FileCheck.cpp