]> granicus.if.org Git - llvm/commit
FileCheck [8/12]: Define numeric var from expr
authorThomas Preud'homme <thomasp@graphcore.ai>
Wed, 24 Jul 2019 12:38:22 +0000 (12:38 +0000)
committerThomas Preud'homme <thomasp@graphcore.ai>
Wed, 24 Jul 2019 12:38:22 +0000 (12:38 +0000)
commitc30b26e38bf9cf0f8a6dc2d416f548176a72c463
tree4e51ad2953ec0a1cac7f1f3bd7458f857ca5296f
parent7025bc7be90482f68f686e1d751ec0368b57264a
FileCheck [8/12]: Define numeric var from expr

Summary:
This patch is part of a patch series to add support for FileCheck
numeric expressions. This specific patch lift the restriction for a
numeric expression to either be a variable definition or a numeric
expression to try to match.

This commit allows a numeric variable to be set to the result of the
evaluation of a numeric expression after it has been matched
successfully. When it happens, the variable is allowed to be used on
the same line since its value is known at match time.

It also makes use of this possibility to reuse the parsing code to
parse a command-line definition by crafting a mirror string of the
-D option with the equal sign replaced by a colon sign, e.g. for option
'-D#NUMVAL=10' it creates the string
'-D#NUMVAL=10 (parsed as [[#NUMVAL:10]])' where the numeric expression
is parsed to define NUMVAL. This result in a few tests needing updating
for the location diagnostics on top of the tests for the new feature.

It also enables empty numeric expression which match any number without
defining a variable. This is done here rather than in commit #5 of the
patch series because it requires to dissociate automatic regex insertion
in RegExStr from variable definition which would make commit #5 even
bigger than it already is.

Copyright:
    - Linaro (changes up to diff 183612 of revision D55940)
    - GraphCore (changes in later versions of revision D55940 and
                 in new revision created off D55940)

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60388

llvm-svn: 366860

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@366897 91177308-0d34-0410-b5e6-96231b3b80d8
docs/CommandGuide/FileCheck.rst
include/llvm/Support/FileCheck.h
lib/Support/FileCheck.cpp
test/FileCheck/numeric-defines-diagnostics.txt
test/FileCheck/numeric-defines.txt
test/FileCheck/numeric-expression.txt
unittests/Support/FileCheckTest.cpp