]> granicus.if.org Git - llvm/commitdiff
[RISCV] Bugfix createRISCVELFObjectWriter
authorAlex Bradbury <asb@lowrisc.org>
Wed, 18 Oct 2017 16:11:31 +0000 (16:11 +0000)
committerAlex Bradbury <asb@lowrisc.org>
Wed, 18 Oct 2017 16:11:31 +0000 (16:11 +0000)
r315275 set the IsLittleEndian parameter incorrectly. This patch corrects
this, and adds a test to ensure such mistakes will be caught in the future.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316091 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
test/MC/RISCV/elf-header.s [new file with mode: 0644]

index 2756d6526fe1a16915e60b09339f59c9884d9a88..e256156dc9628b00f15137c81f9d36761f3f7502 100644 (file)
@@ -67,5 +67,5 @@ llvm::createRISCVELFObjectWriter(raw_pwrite_stream &OS, uint8_t OSABI,
                                  bool Is64Bit) {
   return createELFObjectWriter(
       llvm::make_unique<RISCVELFObjectWriter>(OSABI, Is64Bit), OS,
-      /*IsLittleEndian=*/false);
+      /*IsLittleEndian=*/true);
 }
diff --git a/test/MC/RISCV/elf-header.s b/test/MC/RISCV/elf-header.s
new file mode 100644 (file)
index 0000000..29a7036
--- /dev/null
@@ -0,0 +1,42 @@
+# RUN: llvm-mc %s -filetype=obj -triple=riscv32 | llvm-readobj -h \
+# RUN:     | FileCheck -check-prefix=RV32 %s
+# RUN: llvm-mc %s -filetype=obj -triple=riscv64 | llvm-readobj -h \
+# RUN:     | FileCheck -check-prefix=RV64 %s
+
+# RV32: Format: ELF32-riscv
+# RV32: Arch: riscv32
+# RV32: AddressSize: 32bit
+# RV32: ElfHeader {
+# RV32:   Ident {
+# RV32:     Magic: (7F 45 4C 46)
+# RV32:     Class: 32-bit (0x1)
+# RV32:     DataEncoding: LittleEndian (0x1)
+# RV32:     FileVersion: 1
+# RV32:     OS/ABI: SystemV (0x0)
+# RV32:     ABIVersion: 0
+# RV32:   }
+# RV32:   Type: Relocatable (0x1)
+# RV32:   Machine: EM_RISCV (0xF3)
+# RV32:   Version: 1
+# RV32:   Flags [ (0x0)
+# RV32:   ]
+# RV32: }
+
+# RV64: Format: ELF64-riscv
+# RV64: Arch: riscv64
+# RV64: AddressSize: 64bit
+# RV64: ElfHeader {
+# RV64:   Ident {
+# RV64:     Magic: (7F 45 4C 46)
+# RV64:     Class: 64-bit (0x2)
+# RV64:     DataEncoding: LittleEndian (0x1)
+# RV64:     FileVersion: 1
+# RV64:     OS/ABI: SystemV (0x0)
+# RV64:     ABIVersion: 0
+# RV64:   }
+# RV64:   Type: Relocatable (0x1)
+# RV64:   Machine: EM_RISCV (0xF3)
+# RV64:   Version: 1
+# RV64:   Flags [ (0x0)
+# RV64:   ]
+# RV64: }