patch for Bug 18833 - ARMAsmParser fails to recognize .req directive alias name in capital letters

lin zuojian manjian2006 at gmail.com
Mon Feb 17 20:30:24 PST 2014


patch v2:

Index: test/MC/ARM/dot-req-capital.s
===================================================================
--- test/MC/ARM/dot-req-capital.s (revision 0)
+++ test/MC/ARM/dot-req-capital.s (working copy)
@@ -0,0 +1,14 @@
+@ RUN: llvm-mc -triple=arm-linux-androideabi < %s | FileCheck %s
+ .syntax unified
+_foo:
+
+ OBJECT .req r2
+ mov r4, OBJECT
+ mov r4, oBjEcT
+ .unreq OBJECT
+
+_foo2:
+ OBJECT .req r5
+ mov r4, OBJECT
+ .unreq OBJECT
+
Index: lib/Target/ARM/AsmParser/ARMAsmParser.cpp
===================================================================
--- lib/Target/ARM/AsmParser/ARMAsmParser.cpp (revision 201500)
+++ lib/Target/ARM/AsmParser/ARMAsmParser.cpp (working copy)
@@ -8243,7 +8243,7 @@
Error(L, "unexpected input in .unreq directive.");
return false;
}
- RegisterReqs.erase(Parser.getTok().getIdentifier());
+ RegisterReqs.erase(Parser.getTok().getIdentifier().lower());
Parser.Lex(); // Eat the identifier.
return false;
}




于 2014年02月18日 12:01, Duncan P. N. Exon Smith 写道:
> On 2014 Feb 17, at 18:31, lin zuojian <manjian2006 at gmail.com> wrote:
>
>> And here is my test case.This test case has been posted in 
>>
>> http://llvm.org/bugs/show_bug.cgi?id=18833
>>
>>
>> cat 1.s 
>>  .thumb
>> _foo:
>>
>>   OBJECT .req r2
>>   mov r4, OBJECT
>>   mov r4, oBjEcT
>>   .unreq OBJECT
>>
>> _foo2:
>>   OBJECT .req r5
>>   mov r4, OBJECT
>>   .unreq OBJECT
>>
>>
>> bin/clang -target arm-linux-androideabi -march=armv7-a -c 1.s
>> 1.s:12:15: error: redefinition of 'object' does not match original.
>>   OBJECT .req r5
> Great!  Now reduce that to a testcase against llvm-mc (or whatever fails), add a
> RUN line and appropriate CHECK lines, and resubmit your patch with the testcase
> included.  There are lots of examples in test/MC/ARM/, and lots of documentation
> on the test infrastructure, e.g., here:
>
> http://llvm.org/docs/TestingGuide.html#regression-test-structure
>
> Be sure that the test fails (i.e., "make check" fails) without your change, and
> passes with your change.
>
> Duncan




More information about the llvm-commits mailing list