• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// This tests that default-null weak symbols (a GNU extension) are created
2// properly via the .weak directive.
3
4// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 < %s | coff-dump.py | FileCheck %s
5
6    .def    _main;
7    .scl    2;
8    .type   32;
9    .endef
10    .text
11    .globl  _main
12    .align  16, 0x90
13_main:                                  # @main
14# BB#0:                                 # %entry
15    subl    $4, %esp
16    movl    $_test_weak, %eax
17    testl   %eax, %eax
18    je      LBB0_2
19# BB#1:                                 # %if.then
20    calll   _test_weak
21    movl    $1, %eax
22    addl    $4, %esp
23    ret
24LBB0_2:                                 # %return
25    xorl    %eax, %eax
26    addl    $4, %esp
27    ret
28
29    .weak   _test_weak
30
31// CHECK: Symbols = [
32
33// CHECK:      Name               = _test_weak
34// CHECK-NEXT: Value              = 0
35// CHECK-NEXT: SectionNumber      = 0
36// CHECK-NEXT: SimpleType         = IMAGE_SYM_TYPE_NULL (0)
37// CHECK-NEXT: ComplexType        = IMAGE_SYM_DTYPE_NULL (0)
38// CHECK-NEXT: StorageClass       = IMAGE_SYM_CLASS_WEAK_EXTERNAL (105)
39// CHECK-NEXT: NumberOfAuxSymbols = 1
40// CHECK-NEXT: AuxillaryData      =
41// CHECK-NEXT: 05 00 00 00 02 00 00 00 - 00 00 00 00 00 00 00 00 |................|
42// CHECK-NEXT: 00 00                                             |..|
43
44// CHECK:      Name               = .weak._test_weak.default
45// CHECK-NEXT: Value              = 0
46// CHECK-NEXT: SectionNumber      = 65535
47// CHECK-NEXT: SimpleType         = IMAGE_SYM_TYPE_NULL (0)
48// CHECK-NEXT: ComplexType        = IMAGE_SYM_DTYPE_NULL (0)
49// CHECK-NEXT: StorageClass       = IMAGE_SYM_CLASS_EXTERNAL (2)
50// CHECK-NEXT: NumberOfAuxSymbols = 0
51// CHECK-NEXT: AuxillaryData      =
52