summaryrefslogtreecommitdiffstats
path: root/llvm/utils/FileCheck/FileCheck.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add 'CHECK-DAG' supportMichael Liao2013-05-141-23/+147
| | | | | | Refer to 'FileCheck.rst'f for details of 'CHECK-DAG'. llvm-svn: 181827
* Refactor string checking. No functionality change.Michael Liao2013-05-141-62/+94
| | | | llvm-svn: 181824
* Remove SMLoc paired with CHECK-NOT patterns. Not functionality change.Michael Liao2013-04-251-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | Pattern has source location by itself. After adding a trivial method to retrieve it, it's unnecessary to pair a source location for CHECK-NOT patterns. One thing revised after this is the diagnostic info is more accurate by pointing to the start of the CHECK-NOT pattern instead of the end of the CHECK-NOT pattern. E.g. diagnostic message previously looks like <stdin>:1:1: error: CHECK-NOT: string occurred! test ^ test.txt:1:16: note: CHECK-NOT: pattern specified here CHECK-NOT: test ^ is changed to <stdin>:1:1: error: CHECK-NOT: string occurred! test ^ test.txt:1:12: note: CHECK-NOT: pattern specified here CHECK-NOT: test ^ llvm-svn: 180578
* Remove tailing whitespacesMichael Liao2013-04-251-1/+1
| | | | llvm-svn: 180564
* Plug a memory leak in FileCheck when the input file is empty.Benjamin Kramer2013-03-231-6/+6
| | | | llvm-svn: 177822
* Add static cast to unsigned char whenever a character classification ↵Guy Benyei2013-02-121-1/+1
| | | | | | function is called with a signed char argument, in order to avoid assertions in Windows Debug configuration. llvm-svn: 175006
* Canonicalize line endings to Linux style also when the --strict-whitespace ↵Guy Benyei2013-02-061-10/+14
| | | | | | flag is in use. This flag is supposed to affect horizontal whitespaces only. llvm-svn: 174541
* Sort the #include lines for utils/...Chandler Carruth2012-12-041-4/+4
| | | | | | | I've tried to find main moudle headers where possible, but the TableGen stuff may warrant someone else looking at it. llvm-svn: 169251
* Fix a bug in FileCheck that wouldn't let define variables as follows:Eli Bendersky2012-12-021-4/+47
| | | | | | | | | | | | ; CHECK: [[VAR:[a-z]]] The problem was that to find the end of the regex var definition, it was simplistically looking for the next ]] and finding the incorrect one. A better approach is to count nesting of brackets (taking escaping into account). This way the brackets that are part of the regex can be discovered and skipped properly, and the ]] ending is detected in the right place. llvm-svn: 169109
* Support referencing variables defined on the same line.Eli Bendersky2012-12-011-16/+40
| | | | | | | See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121126/157198.html and related discussions. llvm-svn: 169101
* Clean up whitespace and add commentsEli Bendersky2012-11-301-7/+8
| | | | llvm-svn: 169002
* Make FileCheck return 2 in case of an error as documented,Eli Bendersky2012-11-301-2/+2
| | | | | | instead of 1 or true (?!) llvm-svn: 169001
* FileCheck: remove useless 'continue' at the end of a 'while(){}' loop.Dmitri Gribenko2012-11-151-1/+0
| | | | llvm-svn: 168048
* Support for [[@LINE]], [[@LINE+<offset>]], [[@LINE-<offset>]] expressions inAlexander Kornienko2012-11-141-27/+94
| | | | | | FileCheck. llvm-svn: 167978
* Clarify comment.Dmitri Gribenko2012-09-211-1/+1
| | | | llvm-svn: 164371
* FileCheck: Fix off-by-one bug that made CHECK-NOT: ignore the next character ↵Benjamin Kramer2012-09-181-2/+2
| | | | | | after the colon. llvm-svn: 164165
* Revert "Add -exact-match option to FileCheck to allow clients to do exact ↵Ted Kremenek2012-09-081-5/+1
| | | | | | | | | matches without using regular expressions." Turns out I did not need it after all. If we find a use for it in the future, we can resurrect it. llvm-svn: 163457
* Add -exact-match option to FileCheck to allow clients to do exact matches ↵Ted Kremenek2012-09-071-1/+5
| | | | | | without using regular expressions. llvm-svn: 163371
* Make SMDiagnostic a little more sane. Instead of passing around ↵Chris Lattner2011-10-161-36/+37
| | | | | | | | note/warning/error as a string, pass it around as an enum. llvm-svn: 142107
* Enhance llvm::SourceMgr to support diagnostic ranges, the same way clang ↵Chris Lattner2011-10-161-1/+1
| | | | | | | | | | | | | | | does. Enhance the X86 asmparser to produce ranges in the one case that was annoying me, for example: test.s:10:15: error: invalid operand for instruction movl 0(%rax), 0(%edx) ^~~~~~~ It should be straight-forward to enhance filecheck, tblgen, and/or the .ll parser to use ranges where appropriate if someone is interested. llvm-svn: 142106
* fix PR9629 - We were lowering regexes like a{{b|c}}d into ab|cd, whichChris Lattner2011-04-091-0/+8
| | | | | | | is substantially different than a(b|c)d. Form the latter regex instead. This found a few problems in the testsuite, which serves as its test. llvm-svn: 129196
* various cleanups, no functionality change.Chris Lattner2011-04-091-10/+6
| | | | llvm-svn: 129192
* emit a specific error when the input file is empty. This fixes Chris Lattner2011-02-091-0/+5
| | | | | | | | | an annoyance of mine when working on tests: if the input .ll file is broken, opt outputs an error and generates an empty file. FileCheck then emits its "ooh I couldn't find the first CHECK line, scanning from ..." which obfuscates the actual problem. llvm-svn: 125193
* MemoryBuffer now return an error_code and returns a OwningPtr<MemoryBuffer> ↵Michael J. Spencer2010-12-161-6/+9
| | | | | | via an out parm. llvm-svn: 121958
* Support/MemoryBuffer: Replace all uses of std::string *ErrMsg with ↵Michael J. Spencer2010-12-091-8/+7
| | | | | | error_code &ec. And fix clients. llvm-svn: 121379
* Merge System into Support.Michael J. Spencer2010-11-291-1/+1
| | | | llvm-svn: 120298
* FileCheck: Eliminate DOSish \r from input file.NAKAMURA Takumi2010-11-141-0/+5
| | | | | | | | It can pass two tests below on Win32. - Clang :: CodeGenCXX/dyncast.cpp - LLVM :: CodeGen/ARM/globals.ll llvm-svn: 119023
* Teach FileCheck to handle trailing CHECK-NOT patterns.Jakob Stoklund Olesen2010-10-151-9/+22
| | | | | | | | | | A CHECK-NOT pattern without a following CHECK pattern simply checks that the pattern doesn't match before the end of the input file. You can even have only CHECK-NOT patterns to check that strings appear nowhere in the input file. llvm-svn: 116592
* Trailing whitespace.Mikhail Glushenkov2010-08-201-80/+80
| | | | llvm-svn: 111656
* stringref-ize the MemoryBuffer::get apis. This requiresChris Lattner2010-04-051-4/+2
| | | | | | a co-committed clang patch. llvm-svn: 100485
* FileCheck: Don't print "possibly intended match" line if it would match theDaniel Dunbar2010-03-191-5/+6
| | | | | | "scanning from here" one. llvm-svn: 98971
* FileCheck: When looking for "possible matches", only compare against the prefixDaniel Dunbar2010-01-301-1/+4
| | | | | | | line. Turns out edit_distance can be slow if the string we are scanning for happens to be quite large. llvm-svn: 94860
* Minor code cleanup.Dan Gohman2010-01-291-1/+1
| | | | llvm-svn: 94848
* Skip whitespace when looking for a potential intended match.Dan Gohman2010-01-291-0/+5
| | | | | | | | | | | | | | | Before: <stdin>:94:1: note: possible intended match here movsd 4096(%rsi), %xmm0 ^ After: <stdin>:94:2: note: possible intended match here movsd 4096(%rsi), %xmm0 ^ llvm-svn: 94847
* Fix the position of the caret in the FileCheck error message.Dan Gohman2010-01-291-1/+4
| | | | | | | | | | | | | | | | Before: test/CodeGen/X86/lsr-reuse.ll:52:34: error: expected string not found in input ; CHECK: movsd -2048(%rsi), %xmm0 ^ After: test/CodeGen/X86/lsr-reuse.ll:52:10: error: expected string not found in input ; CHECK: movsd -2048(%rsi), %xmm0 ^ llvm-svn: 94846
* FileCheck: Switch "possible match" calculation to use StringRef::edit_distance.Daniel Dunbar2010-01-291-6/+1
| | | | | | - Thanks Doug, who is obviously less lazy than me! llvm-svn: 94795
* Fix FileCheck crash when fuzzy scanning starting at the end of the file.Daniel Dunbar2009-11-291-1/+1
| | | | llvm-svn: 90065
* FileCheck, PR5239: Try to find the intended match on failures, but looking for aDaniel Dunbar2009-11-221-4/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 89631
* FileCheck: When a string using variable references fails to match, printDaniel Dunbar2009-11-221-4/+50
| | | | | | | additional information about the current definitions of the variables used in the string. llvm-svn: 89628
* Allow '_' in FileCheck variable names, it is nice to have at least oneDaniel Dunbar2009-11-221-2/+3
| | | | | | | separate character. - Chris, OK? llvm-svn: 89626
* implement and document support for filecheck variables. ThisChris Lattner2009-09-271-43/+172
| | | | | | | | | | allows matching and remembering a string and then matching and verifying that the string occurs later in the file. Change X86/xor.ll to use this in some cases where the test was checking for an arbitrary register allocation decision. llvm-svn: 82891
* remove support for "NoSub" from regex. It seems like a minor optimizationChris Lattner2009-09-261-1/+1
| | | | | | and makes the API more annoying. Add a Regex::getNumMatches() method. llvm-svn: 82877
* reject attempts to use ()'s in patterns, these are reserved for filecheck.Chris Lattner2009-09-251-3/+15
| | | | llvm-svn: 82780
* reimplement the regex matching strategy by building a singleChris Lattner2009-09-251-88/+51
| | | | | | | | | | | | | | | | | regex and matching it instead of trying to match chunks at a time. Matching chunks at a time broke with check lines like CHECK: foo {{.*}}bar because the .* would eat the entire rest of the line and bar would never match. Now we just escape the fixed strings for the user, so that something like: CHECK: a() {{.*}}??? is matched as: CHECK: {{a\(\) .*\?\?\?}} transparently "under the covers". llvm-svn: 82779
* special case Patterns that are a single fixed string. This is a microscopicChris Lattner2009-09-251-0/+16
| | | | | | perf win and is needed for future changes. llvm-svn: 82777
* filecheck should not match a \n with a .Chris Lattner2009-09-251-3/+1
| | | | llvm-svn: 82758
* turn a std::pair into a real class.Chris Lattner2009-09-251-23/+34
| | | | llvm-svn: 82754
* add and document regex support for FileCheck. You can now do stuff like:Chris Lattner2009-09-241-11/+116
| | | | | | | | ; CHECK: movl {{%e[a-z][xi]}}, %eax or whatever. llvm-svn: 82717
* Use CanonicalizeInputFile to canonicalize the entire buffer containing theChris Lattner2009-09-241-57/+40
| | | | | | | CHECK strings, instead of canonicalizing the patterns directly. This allows Pattern to just contain a StringRef instead of std::string. llvm-svn: 82713
* change 'not' matching to use Pattern, move pattern parsing logic intoChris Lattner2009-09-241-32/+51
| | | | | | the Pattern class. llvm-svn: 82712
OpenPOWER on IntegriCloud