[llvm-dev] FileCheck feature request- by default ignore IR-"headers"

Justin Bogner via llvm-dev llvm-dev at lists.llvm.org
Thu Mar 30 09:49:29 PDT 2017


"Keane, Erich via llvm-dev" <llvm-dev at lists.llvm.org> writes:
> I hope this is the right place for this.
>
> Anyway, the primary usage for the utility "FileCheck" is to pattern
> match for specific values in a stream.  This is perfectly consistent
> and deterministic for the most part!  However, when validating clang's
> LLVM-IR generation, it is possible to make an invalid match against
> the top few generated lines (the LLVM-IR Headers), which are
> inconsistent.
>
> For example (from my personal pain), we have a test:
> clang/test/CodeGen/debug-info-macro.c that has a 'check-not' on the
> word "macros".  Unfortunately, my SVN workspace name was "ms_macros",
> which gave me a false match.  I'm a bit ashamed to say how long this
> took me to figure out :)

This is a bug in the test and an annoyingly common pitfall when it comes
to writing "CHECK-NOT" checks - it should be checking for something more
specific.

> Anywya, to my feature request: to prevent someone else from going
> through this pain again, would it be possible to have FileCheck ignore
> these first 4 lines as default behavior?  I suspect there might be a
> few tests that would want to validate those headers, though I expect
> those are the vast minority, so I would think this should be opt in.

Unfortunately this isn't really practical to do - FileCheck is
completely unaware of what kind of file it's checking, so it wouldn't
know when to skip those couple of lines (many tests are not IR!).


More information about the llvm-dev mailing list