[llvm-commits] [llvm] r104038 - in /llvm/trunk: lib/MC/MCParser/AsmLexer.cpp test/MC/MachO/direction_labels.s

Kevin Enderby enderby at apple.com
Tue May 18 10:51:35 PDT 2010


Author: enderby
Date: Tue May 18 12:51:35 2010
New Revision: 104038

URL: http://llvm.org/viewvc/llvm-project?rev=104038&view=rev
Log:
Fixed the problem with a branch to "0b" that was not parsed by llvm-mc
correctly.  The Lexer was incorrectly eating the newline casusing it to branch
to address 0.  Updated the test case to use a "0:" label and a branch to "0b".

Modified:
    llvm/trunk/lib/MC/MCParser/AsmLexer.cpp
    llvm/trunk/test/MC/MachO/direction_labels.s

Modified: llvm/trunk/lib/MC/MCParser/AsmLexer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/AsmLexer.cpp?rev=104038&r1=104037&r2=104038&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCParser/AsmLexer.cpp (original)
+++ llvm/trunk/lib/MC/MCParser/AsmLexer.cpp Tue May 18 12:51:35 2010
@@ -157,7 +157,6 @@
     if (CurPtr[0] == '\n') {
       --CurPtr;
       StringRef Result(TokStart, CurPtr - TokStart);
-      ++CurPtr;
       return AsmToken(AsmToken::Integer, Result, 0);
     }
     const char *NumStart = CurPtr;

Modified: llvm/trunk/test/MC/MachO/direction_labels.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/MachO/direction_labels.s?rev=104038&r1=104037&r2=104038&view=diff
==============================================================================
--- llvm/trunk/test/MC/MachO/direction_labels.s (original)
+++ llvm/trunk/test/MC/MachO/direction_labels.s Tue May 18 12:51:35 2010
@@ -1,12 +1,15 @@
 // RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
 
 direction_labels:
-10:	nop
-	jmp 10b
-	nop
-	jmp 11f
-11:	nop
-	ret
+10:     nop
+        jmp 10b
+        nop
+	jne 0f
+0:	nop
+	jne 0b
+        jmp 11f
+11:     nop
+        ret
 
 // CHECK: ('cputype', 7)
 // CHECK: ('cpusubtype', 3)
@@ -20,9 +23,9 @@
 // CHECK:   ('size', 124)
 // CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
 // CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 8)
+// CHECK:   ('vm_size', 13)
 // CHECK:   ('file_offset', 256)
-// CHECK:   ('file_size', 8)
+// CHECK:   ('file_size', 13)
 // CHECK:   ('maxprot', 7)
 // CHECK:   ('initprot', 7)
 // CHECK:   ('num_sections', 1)
@@ -32,7 +35,7 @@
 // CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
 // CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
 // CHECK:     ('address', 0)
-// CHECK:     ('size', 8)
+// CHECK:     ('size', 13)
 // CHECK:     ('offset', 256)
 // CHECK:     ('alignment', 0)
 // CHECK:     ('reloc_offset', 0)
@@ -43,15 +46,15 @@
 // CHECK:    ),
 // CHECK:   ('_relocations', [
 // CHECK:   ])
-// CHECK:   ('_section_data', '\x90\xeb\xfd\x90\xeb\x00\x90\xc3')
+// CHECK:   ('_section_data', '\x90\xeb\xfd\x90u\x00\x90u\xfd\xeb\x00\x90\xc3')
 // CHECK:   ])
 // CHECK:  ),
 // CHECK:   # Load Command 1
 // CHECK:  (('command', 2)
 // CHECK:   ('size', 24)
-// CHECK:   ('symoff', 264)
+// CHECK:   ('symoff', 272)
 // CHECK:   ('nsyms', 1)
-// CHECK:   ('stroff', 276)
+// CHECK:   ('stroff', 284)
 // CHECK:   ('strsize', 20)
 // CHECK:   ('_string_data', '\x00direction_labels\x00\x00\x00')
 // CHECK:   ('_symbols', [





More information about the llvm-commits mailing list