<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
span.pre
        {mso-style-name:pre;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">The documentation is incorrect there; it's not that the *line* cannot be matched, but that the pattern in the directive cannot be matched by other directives.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">"cannot also be matched…" is kind of awkwardly written as well, the intent is that each CHECK-LABEL pattern ought to be unique in the input.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">This reminds me that I was supposed to overhaul the FileCheck documentation…  which task seems to have fallen off my to-do list, I will put it back.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">HTH,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">--paulr<o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></a></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext"> llvm-dev [mailto:llvm-dev-bounces@lists.llvm.org]
<b>On Behalf Of </b>Peter Waller via llvm-dev<br>
<b>Sent:</b> Tuesday, July 30, 2019 11:00 AM<br>
<b>To:</b> llvm-dev@lists.llvm.org; nd<br>
<b>Subject:</b> [llvm-dev] Confusing FileCheck check-label documentation<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>The FileCheck documentation states of CHECK-LABEL:<o:p></o:p></p>
<p>> It is treated identically to a normal <span class="pre"><span style="font-size:10.0pt;font-family:"Courier New"">CHECK</span></span> directive except that FileCheck makes an additional assumption that a line matched by the directive cannot also be matched
 by any other check present in <span class="pre"><span style="font-size:10.0pt;font-family:"Courier New"">match-filename</span></span>;<o:p></o:p></p>
<p>However:<o:p></o:p></p>
<p>$ cat > fchecktest.txt<o:p></o:p></p>
<p>#CHECK-LABEL: flang2<br>
#CHECK: foo baz<br>
<br>
flang1 foo bar<br>
flang2 foo baz<o:p></o:p></p>
<p>$ grep -v -e '^#' fchecktest.txt | bin/FileCheck fchecktest.txt <o:p></o:p></p>
<p>(passes)<o:p></o:p></p>
<p>The behaviour of the above suggests contrary to the documentation - that foo baz can indeed be matched against the label line "flang2", i.e. check-label does not consume the whole line as the docs seem to imply.<o:p></o:p></p>
<p>I believe that FileCheck is working as intended and that the docs are just a bit confusing. Is that right?<o:p></o:p></p>
<p>The use-case is matching flang1 and flang2 invocations by the clang driver in -### output, and the intent is to be able to match something appearing in one without accidentally matching the other.<o:p></o:p></p>
<p>- Peter<o:p></o:p></p>
<p class="MsoNormal">IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person,
 use it for any purpose, or store or copy the information in any medium. Thank you.
<o:p></o:p></p>
</div>
</div>
</body>
</html>