[llvm-commits] [llvm] r114895 - in /llvm/trunk: lib/MC/MCParser/ELFAsmParser.cpp test/MC/ELF/align-text.s

Rafael Espindola rafael.espindola at gmail.com
Mon Sep 27 14:40:27 PDT 2010


Author: rafael
Date: Mon Sep 27 16:40:27 2010
New Revision: 114895

URL: http://llvm.org/viewvc/llvm-project?rev=114895&view=rev
Log:
Make sure .text doesn't produce extra alignment.

Added:
    llvm/trunk/test/MC/ELF/align-text.s
Modified:
    llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp

Modified: llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp?rev=114895&r1=114894&r2=114895&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp (original)
+++ llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp Mon Sep 27 16:40:27 2010
@@ -54,25 +54,19 @@
   // FIXME: Part of this logic is duplicated in the MCELFStreamer. What is
   // the best way for us to get access to it?
   bool ParseSectionDirectiveData(StringRef, SMLoc) {
-    bool ret =  ParseSectionSwitch(".data", MCSectionELF::SHT_PROGBITS,
+    return ParseSectionSwitch(".data", MCSectionELF::SHT_PROGBITS,
                               MCSectionELF::SHF_WRITE |MCSectionELF::SHF_ALLOC,
                               SectionKind::getDataRel());
-    getStreamer().EmitCodeAlignment(4, 0);
-    return ret;
   }
   bool ParseSectionDirectiveText(StringRef, SMLoc) {
-    bool ret = ParseSectionSwitch(".text", MCSectionELF::SHT_PROGBITS,
+    return ParseSectionSwitch(".text", MCSectionELF::SHT_PROGBITS,
                               MCSectionELF::SHF_EXECINSTR |
                               MCSectionELF::SHF_ALLOC, SectionKind::getText());
-    getStreamer().EmitCodeAlignment(4, 0);
-    return ret;
   }
   bool ParseSectionDirectiveBSS(StringRef, SMLoc) {
-    bool ret = ParseSectionSwitch(".bss", MCSectionELF::SHT_NOBITS,
+    return ParseSectionSwitch(".bss", MCSectionELF::SHT_NOBITS,
                               MCSectionELF::SHF_WRITE |
                               MCSectionELF::SHF_ALLOC, SectionKind::getBSS());
-    getStreamer().EmitCodeAlignment(4, 0);
-    return ret;
   }
   bool ParseSectionDirectiveRoData(StringRef, SMLoc) {
     return ParseSectionSwitch(".rodata", MCSectionELF::SHT_PROGBITS,

Added: llvm/trunk/test/MC/ELF/align-text.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/align-text.s?rev=114895&view=auto
==============================================================================
--- llvm/trunk/test/MC/ELF/align-text.s (added)
+++ llvm/trunk/test/MC/ELF/align-text.s Mon Sep 27 16:40:27 2010
@@ -0,0 +1,19 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump  | FileCheck %s
+
+// Test that the .text directive doesn't cause alignment.
+
+        .zero 1
+        .text
+        .zero 1
+
+// CHECK:      (('sh_name', 1) # '.text'
+// CHECK-NEXT:  ('sh_type', 1)
+// CHECK-NEXT:  ('sh_flags', 6)
+// CHECK-NEXT:   ('sh_addr', 0)
+// CHECK-NEXT:   ('sh_offset', 64)
+// CHECK-NEXT:   ('sh_size', 2)
+// CHECK-NEXT:   ('sh_link', 0)
+// CHECK-NEXT:   ('sh_info', 0)
+// CHECK-NEXT:   ('sh_addralign', 4)
+// CHECK-NEXT:   ('sh_entsize', 0)
+// CHECK-NEXT:  ),





More information about the llvm-commits mailing list