Replace coff-/elf-dump with llvm-readobj
[oota-llvm.git] / test / MC / COFF / weak.s
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 | llvm-readobj -t | FileCheck %s
5 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | llvm-readobj -t | FileCheck %s
6
7     .def    _main;
8     .scl    2;
9     .type   32;
10     .endef
11     .text
12     .globl  _main
13     .align  16, 0x90
14 _main:                                  # @main
15 # BB#0:                                 # %entry
16     subl    $4, %esp
17     movl    $_test_weak, %eax
18     testl   %eax, %eax
19     je      LBB0_2
20 # BB#1:                                 # %if.then
21     call    _test_weak
22     movl    $1, %eax
23     addl    $4, %esp
24     ret
25 LBB0_2:                                 # %return
26     xorl    %eax, %eax
27     addl    $4, %esp
28     ret
29
30     .weak   _test_weak
31
32 // CHECK: Symbols [
33
34 // CHECK:      Symbol {
35 // CHECK:        Name:           _test_weak
36 // CHECK-NEXT:   Value:          0
37 // CHECK-NEXT:   Section:        (0)
38 // CHECK-NEXT:   BaseType:       Null
39 // CHECK-NEXT:   ComplexType:    Null
40 // CHECK-NEXT:   StorageClass:   WeakExternal
41 // CHECK-NEXT:   AuxSymbolCount: 1
42 // CHECK-NEXT:   AuxWeakExternal {
43 // CHECK-NEXT:     Linked: .weak._test_weak.default
44 // CHECK-NEXT:      Search: Library
45 // CHECK-NEXT:      Unused: (00 00 00 00 00 00 00 00 00 00)
46 // CHECK-NEXT:   }
47 // CHECK-NEXT: }
48
49 // CHECK:      Symbol {
50 // CHECK:        Name:                .weak._test_weak.default
51 // CHECK-NEXT:   Value:               0
52 // CHECK-NEXT:   Section:             (-1)
53 // CHECK-NEXT:   BaseType:            Null
54 // CHECK-NEXT:   ComplexType:         Null
55 // CHECK-NEXT:   StorageClass:        External
56 // CHECK-NEXT:   AuxSymbolCount:      0
57 // CHECK-NEXT: }