From 4cee2890a66974af506f2125243114cc14bd5556 Mon Sep 17 00:00:00 2001 From: "Michael J. Spencer" Date: Sat, 16 Oct 2010 08:25:57 +0000 Subject: MC-COFF: Add support for default-null weak externals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116666 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/MC/COFF/weak.s | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 test/MC/COFF/weak.s (limited to 'test/MC/COFF') diff --git a/test/MC/COFF/weak.s b/test/MC/COFF/weak.s new file mode 100644 index 0000000000..d910059a47 --- /dev/null +++ b/test/MC/COFF/weak.s @@ -0,0 +1,51 @@ +// This tests that default-null weak symbols (a GNU extension) are created +// properly via the .weak directive. + +// RUN: llvm-mc -filetype=obj < %s | coff-dump.py | FileCheck %s + + .def _main; + .scl 2; + .type 32; + .endef + .text + .globl _main + .align 16, 0x90 +_main: # @main +# BB#0: # %entry + subl $4, %esp + movl $_test_weak, %eax + testl %eax, %eax + je LBB0_2 +# BB#1: # %if.then + calll _test_weak + movl $1, %eax + addl $4, %esp + ret +LBB0_2: # %return + xorl %eax, %eax + addl $4, %esp + ret + + .weak _test_weak + +// CHECK: Symbols = [ + +// CHECK: Name = _test_weak +// CHECK-NEXT: Value = 0 +// CHECK-NEXT: SectionNumber = 0 +// CHECK-NEXT: SimpleType = IMAGE_SYM_TYPE_NULL (0) +// CHECK-NEXT: ComplexType = IMAGE_SYM_DTYPE_NULL (0) +// CHECK-NEXT: StorageClass = IMAGE_SYM_CLASS_WEAK_EXTERNAL (105) +// CHECK-NEXT: NumberOfAuxSymbols = 1 +// CHECK-NEXT: AuxillaryData = +// CHECK-NEXT: 05 00 00 00 02 00 00 00 - 00 00 00 00 00 00 00 00 |................| +// CHECK-NEXT: 00 00 |..| + +// CHECK: Name = .weak._test_weak.default +// CHECK-NEXT: Value = 0 +// CHECK-NEXT: SectionNumber = 65535 +// CHECK-NEXT: SimpleType = IMAGE_SYM_TYPE_NULL (0) +// CHECK-NEXT: ComplexType = IMAGE_SYM_DTYPE_NULL (0) +// CHECK-NEXT: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2) +// CHECK-NEXT: NumberOfAuxSymbols = 0 +// CHECK-NEXT: AuxillaryData = -- cgit v1.2.3