<div dir="ltr">On 13 August 2013 15:58, Stephen Lin <span dir="ltr"><<a href="mailto:swlin@post.harvard.edu" target="_blank">swlin@post.harvard.edu</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im"><span style="color:rgb(34,34,34)">What's the undocumented feature being removed exactly?</span></div>
</blockquote><div><br></div><div><div>Hi Stephen,</div></div><div><br></div><div><div>Sorry, I have interpreted "command line" as the "; RUN: line, not FileCheck's command line.</div><div><br></div><div>
 <br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im"><span style="color:rgb(34,34,34)"> Does FileCheck</span><br>
</div>
currently allow more than one prefix on the command line.<br></blockquote><div><br></div><div>Do you propose to be able to:</div><div><br></div><div>FileCheck %s --check-prefix=FOO --check-prefix=BAR</div><div><br></div>
<div>and have all three: CHECK, FOO and BAR match that line?</div><div><br></div><div>So that three RUN lines would all match against CHECK, and also their own explicit checks?</div><div><br></div><div>That would allow you to mix and match, ex:</div>
<div><br></div><div>; RUN: cmd1 | FileCheck %s -check-prefix=X86 --check-prefix=ARM</div><div>; RUN: cmd2 | FileCheck %s -check-prefix=ARM --check-prefix=MIPS</div><div>; RUN: cmd3 | FileCheck %s -check-prefix=ARM64 --check-prefix=MIPS64</div>
<div><br></div><div>; CHECK: ... will match all</div><div>; ARM: ... will match cmd1 and cmd2</div><div>; MIPS64: .. only matches cmd3</div><div><br></div><div>If that's your idea, I agree Matt's implementation would be a special case where "CHECK" == "ALL".</div>
<div><br></div><div>I'm not sure which case would be solved by this, and I also don't like the CHECK being implicit, mainly because adding new RUN lines to existing tests will be a lot harder (since the new FileCheck will match both old and new CHECKs). This is why I think that "ALL" makes sense, here.</div>
<div><br></div><div>If we have ALL being the joker, than having multiple prefixes adds nothing to the solution. Unless you want NOT to have any implicit prefix, where this would happen:</div><div><br></div><div><div>; RUN: cmd1 | FileCheck %s --check-prefix=ALL -check-prefix=X86 --check-prefix=ARM</div>
<div>; RUN: cmd2 | FileCheck %s --check-prefix=ALL -check-prefix=ARM --check-prefix=MIPS</div><div>; RUN: cmd3 | FileCheck %s -check-prefix=ARM64 --check-prefix=MIPS64</div><div><br></div><div>; ALL: ... matches cmd1 and cmd2</div>
<div>; ARM: ... will match cmd1 and cmd2</div><div>; MIPS64: .. only matches cmd3</div></div><div><br></div><div>Which is more strict, but also more explicit.</div><div><br></div><div>In my view, we should have *either* ALL, or multiple prefixes, but not both.</div>
<div><br></div><div>cheers,</div><div>--renato</div></div></div></div>