From 563c18283926b18bbdb6d3ad6cf02594399e2baf Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Fri, 11 Oct 2013 16:48:02 +0000 Subject: [PATCH] Fix handling of CHECK-DAG inside of CHECK-LABEL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192463 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/FileCheck/check-label-dag.txt | 11 +++++++++++ utils/FileCheck/FileCheck.cpp | 10 ++++------ 2 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 test/FileCheck/check-label-dag.txt diff --git a/test/FileCheck/check-label-dag.txt b/test/FileCheck/check-label-dag.txt new file mode 100644 index 00000000000..2f54c3ea94e --- /dev/null +++ b/test/FileCheck/check-label-dag.txt @@ -0,0 +1,11 @@ +; RUN: not FileCheck -input-file %s %s 2>&1 | FileCheck --check-prefix=ERROR %s + +bar +zed + +CHECK-LABEL: {{^}}bar +CHECK-DAG: {{^}}foo +CHECK-LABEL: {{^}}zed + +ERROR: error: expected string not found in input +ERROR-NEXT: CHECK-DAG: {{.....}}foo diff --git a/utils/FileCheck/FileCheck.cpp b/utils/FileCheck/FileCheck.cpp index 120fdd7283b..37a1a2f5dab 100644 --- a/utils/FileCheck/FileCheck.cpp +++ b/utils/FileCheck/FileCheck.cpp @@ -879,12 +879,10 @@ size_t CheckString::Check(const SourceMgr &SM, StringRef Buffer, size_t LastPos = 0; std::vector NotStrings; - if (CheckTy != Check::CheckLabel) { - // Match "dag strings" (with mixed "not strings" if any). - LastPos = CheckDag(SM, Buffer, NotStrings, VariableTable); - if (LastPos == StringRef::npos) - return StringRef::npos; - } + // Match "dag strings" (with mixed "not strings" if any). + LastPos = CheckDag(SM, Buffer, NotStrings, VariableTable); + if (LastPos == StringRef::npos) + return StringRef::npos; // Match itself from the last position after matching CHECK-DAG. StringRef MatchBuffer = Buffer.substr(LastPos);