summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/test/wasm/data-segment-merging.ll51
-rw-r--r--lld/wasm/Writer.cpp2
2 files changed, 19 insertions, 34 deletions
diff --git a/lld/test/wasm/data-segment-merging.ll b/lld/test/wasm/data-segment-merging.ll
index d0df84d0fc2..2a48b2db6e3 100644
--- a/lld/test/wasm/data-segment-merging.ll
+++ b/lld/test/wasm/data-segment-merging.ll
@@ -5,44 +5,27 @@ target triple = "wasm32-unknown-unknown"
@c = hidden global [9 x i8] c"whatever\00", align 1
@d = hidden global i32 42, align 4
+@e = private constant [9 x i8] c"constant\00", align 1
+@f = private constant i8 43, align 4
+
; RUN: llc -filetype=obj %s -o %t.data-segment-merging.o
; RUN: wasm-ld -no-gc-sections --no-entry -o %t.merged.wasm %t.data-segment-merging.o
; RUN: obj2yaml %t.merged.wasm | FileCheck %s --check-prefix=MERGE
-; MERGE: - Type: DATA
-; MERGE-NEXT: Segments:
-; MERGE-NEXT: - SectionOffset: 7
-; MERGE-NEXT: MemoryIndex: 0
-; MERGE-NEXT: Offset:
-; MERGE-NEXT: Opcode: I32_CONST
-; MERGE-NEXT: Value: 1024
-; MERGE-NEXT: Content: 68656C6C6F00676F6F6462796500776861746576657200002A000000
+; MERGE: - Type: DATA
+; MERGE: Segments:
+; MERGE: Content: 68656C6C6F00676F6F6462796500776861746576657200002A000000
+; MERGE: Content: 636F6E7374616E74000000002B
+; MERGE-NOT: Content:
; RUN: wasm-ld -no-gc-sections --no-entry --no-merge-data-segments -o %t.separate.wasm %t.data-segment-merging.o
; RUN: obj2yaml %t.separate.wasm | FileCheck %s --check-prefix=SEPARATE
-; SEPARATE: - Type: DATA
-; SEPARATE-NEXT: Segments:
-; SEPARATE-NEXT: - SectionOffset: 7
-; SEPARATE-NEXT: MemoryIndex: 0
-; SEPARATE-NEXT: Offset:
-; SEPARATE-NEXT: Opcode: I32_CONST
-; SEPARATE-NEXT: Value: 1024
-; SEPARATE-NEXT: Content: 68656C6C6F00
-; SEPARATE-NEXT: - SectionOffset: 19
-; SEPARATE-NEXT: MemoryIndex: 0
-; SEPARATE-NEXT: Offset:
-; SEPARATE-NEXT: Opcode: I32_CONST
-; SEPARATE-NEXT: Value: 1030
-; SEPARATE-NEXT: Content: 676F6F6462796500
-; SEPARATE-NEXT: - SectionOffset: 33
-; SEPARATE-NEXT: MemoryIndex: 0
-; SEPARATE-NEXT: Offset:
-; SEPARATE-NEXT: Opcode: I32_CONST
-; SEPARATE-NEXT: Value: 1038
-; SEPARATE-NEXT: Content: '776861746576657200'
-; SEPARATE-NEXT: - SectionOffset: 48
-; SEPARATE-NEXT: MemoryIndex: 0
-; SEPARATE-NEXT: Offset:
-; SEPARATE-NEXT: Opcode: I32_CONST
-; SEPARATE-NEXT: Value: 1048
-; SEPARATE-NEXT: Content: 2A000000
+; SEPARATE: - Type: DATA
+; SEPARATE: Segments:
+; SEPARATE: Content: 68656C6C6F00
+; SEPARATE: Content: 676F6F6462796500
+; SEPARATE: Content: '776861746576657200'
+; SEPARATE: Content: 2A000000
+; SEPARATE: Content: 636F6E7374616E7400
+; SEPARATE: Content: 2B
+; SEPARATE-NOT: Content:
diff --git a/lld/wasm/Writer.cpp b/lld/wasm/Writer.cpp
index 37ad32452a9..23a7b5da7ef 100644
--- a/lld/wasm/Writer.cpp
+++ b/lld/wasm/Writer.cpp
@@ -930,6 +930,8 @@ static StringRef getOutputDataSegmentName(StringRef Name) {
return ".data";
if (Name.startswith(".bss."))
return ".bss";
+ if (Name.startswith(".rodata."))
+ return ".rodata";
return Name;
}
OpenPOWER on IntegriCloud