[llvm] r307565 - [WebAssembly] Use the correct size for MCFillFragment
Sam Clegg via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 10 11:36:35 PDT 2017
Author: sbc
Date: Mon Jul 10 11:36:34 2017
New Revision: 307565
URL: http://llvm.org/viewvc/llvm-project?rev=307565&view=rev
Log:
[WebAssembly] Use the correct size for MCFillFragment
Summary: When implementing MCFillFragment, use the size of the fragment,
rather than the size of the section.
Patch by Dan Gohman
Differential Revision: https://reviews.llvm.org/D35090
Added:
llvm/trunk/test/MC/WebAssembly/array-fill.ll
Modified:
llvm/trunk/lib/MC/WasmObjectWriter.cpp
Modified: llvm/trunk/lib/MC/WasmObjectWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/WasmObjectWriter.cpp?rev=307565&r1=307564&r2=307565&view=diff
==============================================================================
--- llvm/trunk/lib/MC/WasmObjectWriter.cpp (original)
+++ llvm/trunk/lib/MC/WasmObjectWriter.cpp Mon Jul 10 11:36:34 2017
@@ -1197,7 +1197,7 @@ void WasmObjectWriter::writeObject(MCAss
Align->getMaxBytesToEmit());
DataBytes.resize(Size, Value);
} else if (auto *Fill = dyn_cast<MCFillFragment>(&Frag)) {
- DataBytes.insert(DataBytes.end(), Size, Fill->getValue());
+ DataBytes.insert(DataBytes.end(), Fill->getSize(), Fill->getValue());
} else {
const auto &DataFrag = cast<MCDataFragment>(Frag);
const SmallVectorImpl<char> &Contents = DataFrag.getContents();
Added: llvm/trunk/test/MC/WebAssembly/array-fill.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/WebAssembly/array-fill.ll?rev=307565&view=auto
==============================================================================
--- llvm/trunk/test/MC/WebAssembly/array-fill.ll (added)
+++ llvm/trunk/test/MC/WebAssembly/array-fill.ll Mon Jul 10 11:36:34 2017
@@ -0,0 +1,14 @@
+; RUN: llc -filetype=obj %s -o - | obj2yaml | FileCheck %s
+; PR33624
+
+source_filename = "ws.c"
+target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
+target triple = "wasm32-unknown-unknown-wasm"
+
+%struct.bd = type { i8 }
+
+ at gBd = hidden global [2 x %struct.bd] [%struct.bd { i8 1 }, %struct.bd { i8 2 }], align 1
+
+; CHECK: - Type: DATA
+; CHECK: Content: '0102'
+; CHECK: DataSize: 2
More information about the llvm-commits
mailing list