summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/lib/ReaderWriter/PECOFF/IdataPass.h2
-rw-r--r--lld/test/pecoff/importlib.test54
2 files changed, 33 insertions, 23 deletions
diff --git a/lld/lib/ReaderWriter/PECOFF/IdataPass.h b/lld/lib/ReaderWriter/PECOFF/IdataPass.h
index 5b784185cb0..49ff3693a47 100644
--- a/lld/lib/ReaderWriter/PECOFF/IdataPass.h
+++ b/lld/lib/ReaderWriter/PECOFF/IdataPass.h
@@ -69,6 +69,8 @@ struct Context {
/// The root class of all idata atoms.
class IdataAtom : public COFFLinkerInternalAtom {
public:
+ virtual SectionChoice sectionChoice() const { return sectionCustomRequired; }
+ virtual StringRef customSectionName() const { return ".idata"; };
virtual ContentType contentType() const { return typeData; }
virtual ContentPermissions permissions() const { return permR__; }
diff --git a/lld/test/pecoff/importlib.test b/lld/test/pecoff/importlib.test
index 5ea86f1744d..b302b3e2ee8 100644
--- a/lld/test/pecoff/importlib.test
+++ b/lld/test/pecoff/importlib.test
@@ -4,35 +4,43 @@
# RUN: yaml2obj %p/Inputs/vars-main.obj.yaml > %t.obj
#
# RUN: lld -flavor link /out:%t1 /subsystem:console /entry:main /opt:noref \
-# RUN: -- %t.obj %p/Inputs/vars.lib && llvm-objdump -d %t1 | FileCheck %s
+# RUN: -- %t.obj %p/Inputs/vars.lib
+# RUN: llvm-objdump -d %t1 | FileCheck -check-prefix=TEXT %s
+# RUN: llvm-readobj -sections %t1 | FileCheck -check-prefix=SECTION %s
#
# RUN: lld -flavor link /out:%t1 /subsystem:console /entry:main /opt:noref \
-# RUN: /libpath:%p/Inputs -- %t.obj vars.lib && llvm-objdump -d %t1 \
-# RUN: | FileCheck %s
+# RUN: /libpath:%p/Inputs -- %t.obj vars.lib
+# RUN: llvm-objdump -d %t1 | FileCheck -check-prefix=TEXT %s
+# RUN: llvm-readobj -sections %t1 | FileCheck -check-prefix=SECTION %s
#
# RUN: lld -flavor link /out:%t1 /subsystem:console /entry:main /opt:noref \
-# RUN: /libpath:%p/Inputs /defaultlib:vars.lib -- %t.obj \
-# RUN: && llvm-objdump -d %t1 | FileCheck %s
+# RUN: /libpath:%p/Inputs /defaultlib:vars.lib -- %t.obj
+# RUN: llvm-objdump -d %t1 | FileCheck -check-prefix=TEXT %s
+# RUN: llvm-readobj -sections %t1 | FileCheck -check-prefix=SECTION %s
#
# RUN: env LIB=%p/Inputs lld -flavor link /out:%t1 /subsystem:console \
-# RUN: /opt:noref /entry:main -- %t.obj vars.lib \
-# RUN: && llvm-objdump -d %t1 | FileCheck %s
+# RUN: /opt:noref /entry:main -- %t.obj vars.lib
+# RUN: llvm-objdump -d %t1 | FileCheck -check-prefix=TEXT %s
+# RUN: llvm-readobj -sections %t1 | FileCheck -check-prefix=SECTION %s
#
# RUN: env LINK="/out:%t1 /subsystem:console /entry:main /opt:noref \
-# RUN: -- %t.obj" lld -flavor link %p/Inputs/vars.lib \
-# RUN: && llvm-objdump -d %t1 | FileCheck %s
+# RUN: -- %t.obj" lld -flavor link %p/Inputs/vars.lib
+# RUN: llvm-objdump -d %t1 | FileCheck -check-prefix=TEXT %s
+# RUN: llvm-readobj -sections %t1 | FileCheck -check-prefix=SECTION %s
-CHECK: Disassembly of section .text:
-CHECK-NEXT: .text:
-CHECK-NEXT: pushl %ebp
-CHECK-NEXT: movl %esp, %ebp
-CHECK-NEXT: pushl %esi
-CHECK-NEXT: calll *{{[0-9]+}}
-CHECK-NEXT: movl {{[0-9]+}}, %ecx
-CHECK-NEXT: movl (%ecx), %esi
-CHECK-NEXT: addl %eax, %esi
-CHECK-NEXT: calll *{{[0-9]+}}
-CHECK-NEXT: addl %esi, %eax
-CHECK-NEXT: popl %esi
-CHECK-NEXT: popl %ebp
-CHECK-NEXT: ret
+TEXT: Disassembly of section .text:
+TEXT-NEXT: .text:
+TEXT-NEXT: pushl %ebp
+TEXT-NEXT: movl %esp, %ebp
+TEXT-NEXT: pushl %esi
+TEXT-NEXT: calll *{{[0-9]+}}
+TEXT-NEXT: movl {{[0-9]+}}, %ecx
+TEXT-NEXT: movl (%ecx), %esi
+TEXT-NEXT: addl %eax, %esi
+TEXT-NEXT: calll *{{[0-9]+}}
+TEXT-NEXT: addl %esi, %eax
+TEXT-NEXT: popl %esi
+TEXT-NEXT: popl %ebp
+TEXT-NEXT: ret
+
+SECTION: Name: .idata (2E 69 64 61 74 61 00 00)
OpenPOWER on IntegriCloud