[PATCH] D41552: [MC] - Teach llvm-mc to handle comdats whose names are numbers.

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Dec 23 22:14:29 PST 2017


This revision was not accepted when it landed; it landed in state "Needs Review".
This revision was automatically updated to reflect the committed changes.
Closed by commit rL321419: [MC] - Teach llvm-mc to handle comdats whose names are numbers. (authored by grimar, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D41552?vs=128077&id=128097#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D41552

Files:
  llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp
  llvm/trunk/test/MC/ELF/comdat-name-number.s


Index: llvm/trunk/test/MC/ELF/comdat-name-number.s
===================================================================
--- llvm/trunk/test/MC/ELF/comdat-name-number.s
+++ llvm/trunk/test/MC/ELF/comdat-name-number.s
@@ -0,0 +1,28 @@
+// RUN: llvm-mc -triple x86_64-pc-linux-gnu %s -filetype=obj -o %t.o 
+// RUN: llvm-readobj -elf-section-groups %t.o | FileCheck %s
+
+// Test that we can handle numeric COMDAT names.
+
+.section .foo,"G", at progbits,123,comdat
+.section .bar,"G", at progbits,abc,comdat
+
+// CHECK:      Groups {
+// CHECK-NEXT:   Group {
+// CHECK-NEXT:     Name: .group
+// CHECK-NEXT:     Index:
+// CHECK-NEXT:     Type: COMDAT
+// CHECK-NEXT:     Signature: 123
+// CHECK-NEXT:     Section(s) in group [
+// CHECK-NEXT:       .foo
+// CHECK-NEXT:     ]
+// CHECK-NEXT:   }
+// CHECK-NEXT:   Group {
+// CHECK-NEXT:     Name: .group
+// CHECK-NEXT:     Index:
+// CHECK-NEXT:     Type: COMDAT
+// CHECK-NEXT:     Signature: abc
+// CHECK-NEXT:     Section(s) in group [
+// CHECK-NEXT:       .bar
+// CHECK-NEXT:     ]
+// CHECK-NEXT:   }
+// CHECK-NEXT: }
Index: llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp
===================================================================
--- llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp
+++ llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp
@@ -423,8 +423,12 @@
   if (L.isNot(AsmToken::Comma))
     return TokError("expected group name");
   Lex();
-  if (getParser().parseIdentifier(GroupName))
+  if (L.is(AsmToken::Integer)) {
+    GroupName = getTok().getString();
+    Lex();
+  } else if (getParser().parseIdentifier(GroupName)) {
     return true;
+  }
   if (L.is(AsmToken::Comma)) {
     Lex();
     StringRef Linkage;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41552.128097.patch
Type: text/x-patch
Size: 1677 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171224/6299ca44/attachment.bin>


More information about the llvm-commits mailing list