<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Feb 17, 2014 at 8:30 PM, lin zuojian <span dir="ltr"><<a href="mailto:manjian2006@gmail.com" target="_blank">manjian2006@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">patch v2:<br>
<br>
Index: test/MC/ARM/dot-req-capital.s<br>
===================================================================<br>
--- test/MC/ARM/dot-req-capital.s (revision 0)<br>
+++ test/MC/ARM/dot-req-capital.s (working copy)<br>
@@ -0,0 +1,14 @@<br>
+@ RUN: llvm-mc -triple=arm-linux-androideabi < %s | FileCheck %s<br></blockquote><div><br></div><div>I think you should be able to relax the triple further to arm.  The redirection is also unnecessary.</div><div><br>
</div><div>@ RUN: llvm-mc -triple arm %s | FileCheck %s</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+ .syntax unified<br>
+_foo:<br>
+<br>
+ OBJECT .req r2<br>
+ mov r4, OBJECT<br>
+ mov r4, oBjEcT<br>
+ .unreq OBJECT<br>
+<br>
+_foo2:<br>
+ OBJECT .req r5<br>
+ mov r4, OBJECT<br>
+ .unreq OBJECT<br>
<div class=""><br></div></blockquote><div>Your check statements are missing, so this test does nothing.  The tests don't cover the unregistration code path that you just fixed up.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="">
Index: lib/Target/ARM/AsmParser/ARMAsmParser.cpp<br>
===================================================================<br>
--- lib/Target/ARM/AsmParser/ARMAsmParser.cpp (revision 201500)<br>
+++ lib/Target/ARM/AsmParser/ARMAsmParser.cpp (working copy)<br>
@@ -8243,7 +8243,7 @@<br>
Error(L, "unexpected input in .unreq directive.");<br>
return false;<br>
}<br>
- RegisterReqs.erase(Parser.getTok().getIdentifier());<br>
+ RegisterReqs.erase(Parser.getTok().getIdentifier().lower());<br>
Parser.Lex(); // Eat the identifier.<br>
return false;<br>
}<br>
<br>
<br>
<br>
<br>
</div>于 2014年02月18日 12:01, Duncan P. N. Exon Smith 写道:<br>
<div class="HOEnZb"><div class="h5">> On 2014 Feb 17, at 18:31, lin zuojian <<a href="mailto:manjian2006@gmail.com">manjian2006@gmail.com</a>> wrote:<br>
><br>
>> And here is my test case.This test case has been posted in<br>
>><br>
>> <a href="http://llvm.org/bugs/show_bug.cgi?id=18833" target="_blank">http://llvm.org/bugs/show_bug.cgi?id=18833</a><br>
>><br>
>><br>
>> cat 1.s<br>
>>  .thumb<br>
>> _foo:<br>
>><br>
>>   OBJECT .req r2<br>
>>   mov r4, OBJECT<br>
>>   mov r4, oBjEcT<br>
>>   .unreq OBJECT<br>
>><br>
>> _foo2:<br>
>>   OBJECT .req r5<br>
>>   mov r4, OBJECT<br>
>>   .unreq OBJECT<br>
>><br>
>><br>
>> bin/clang -target arm-linux-androideabi -march=armv7-a -c 1.s<br>
>> 1.s:12:15: error: redefinition of 'object' does not match original.<br>
>>   OBJECT .req r5<br>
> Great!  Now reduce that to a testcase against llvm-mc (or whatever fails), add a<br>
> RUN line and appropriate CHECK lines, and resubmit your patch with the testcase<br>
> included.  There are lots of examples in test/MC/ARM/, and lots of documentation<br>
> on the test infrastructure, e.g., here:<br>
><br>
> <a href="http://llvm.org/docs/TestingGuide.html#regression-test-structure" target="_blank">http://llvm.org/docs/TestingGuide.html#regression-test-structure</a><br>
><br>
> Be sure that the test fails (i.e., "make check" fails) without your change, and<br>
> passes with your change.<br>
><br>
> Duncan<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Saleem Abdulrasool<br>compnerd (at) compnerd (dot) org
</div></div>