weak.s   [plain text]


// This tests that default-null weak symbols (a GNU extension) are created
// properly via the .weak directive.

// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 < %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      =