~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/MC/COFF/weak.s

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
    .weak   _test_weak_alias
 
33
    _test_weak_alias=_main
 
34
 
 
35
// CHECK: Symbols [
 
36
 
 
37
// CHECK:      Symbol {
 
38
// CHECK:        Name:           _test_weak
 
39
// CHECK-NEXT:   Value:          0
 
40
// CHECK-NEXT:   Section:        IMAGE_SYM_UNDEFINED (0)
 
41
// CHECK-NEXT:   BaseType:       Null
 
42
// CHECK-NEXT:   ComplexType:    Null
 
43
// CHECK-NEXT:   StorageClass:   WeakExternal
 
44
// CHECK-NEXT:   AuxSymbolCount: 1
 
45
// CHECK-NEXT:   AuxWeakExternal {
 
46
// CHECK-NEXT:     Linked: .weak._test_weak.default
 
47
// CHECK-NEXT:      Search: Library
 
48
// CHECK-NEXT:   }
 
49
// CHECK-NEXT: }
 
50
 
 
51
// CHECK:      Symbol {
 
52
// CHECK:        Name:                .weak._test_weak.default
 
53
// CHECK-NEXT:   Value:               0
 
54
// CHECK-NEXT:   Section:             IMAGE_SYM_ABSOLUTE (-1)
 
55
// CHECK-NEXT:   BaseType:            Null
 
56
// CHECK-NEXT:   ComplexType:         Null
 
57
// CHECK-NEXT:   StorageClass:        External
 
58
// CHECK-NEXT:   AuxSymbolCount:      0
 
59
// CHECK-NEXT: }
 
60
 
 
61
// CHECK:      Symbol {
 
62
// CHECK:        Name:           _test_weak_alias
 
63
// CHECK-NEXT:   Value:          0
 
64
// CHECK-NEXT:   Section:        IMAGE_SYM_UNDEFINED (0)
 
65
// CHECK-NEXT:   BaseType:       Null
 
66
// CHECK-NEXT:   ComplexType:    Null
 
67
// CHECK-NEXT:   StorageClass:   WeakExternal
 
68
// CHECK-NEXT:   AuxSymbolCount: 1
 
69
// CHECK-NEXT:   AuxWeakExternal {
 
70
// CHECK-NEXT:     Linked: _main
 
71
// CHECK-NEXT:      Search: Library
 
72
// CHECK-NEXT:   }
 
73
// CHECK-NEXT: }