[llvm] r364370 - MC: correct the emission of weak aliases in COFF

Shoaib Meenai via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 25 18:46:44 PDT 2019


Should test/Object/X86/nm-coff.s be renamed? The name doesn't match its new contents too well.

On 6/25/19, 6:10 PM, "llvm-commits on behalf of Saleem Abdulrasool via llvm-commits" <llvm-commits-bounces at lists.llvm.org on behalf of llvm-commits at lists.llvm.org> wrote:

    Author: compnerd
    Date: Tue Jun 25 18:09:52 2019
    New Revision: 364370
    
    URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D364370-26view-3Drev&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=EKnfyKP7hyrAuXtIlRnA_uMI3gPViyUu3uHnvKEsJ4g&s=sShv9UjjnnpTXuaQltLKl8wOzErzXRgVMPGT3q-ZCL8&e= 
    Log:
    MC: correct the emission of weak aliases in COFF
    
    The weak alias should have the characteristics set to
    `IMAGE_EXTERN_WEAK_SEARCH_ALIAS` to indicate that the weak external here
    is a symbol alias and that the symbol is aliased to a locally defined
    symbol.  We were previously setting the characteristics to
    `IMAGE_EXTERN_WEAK_SEARCH_LIBRARY` which indicates that the symbol
    should be looked for in the libraries.
    
    Modified:
        llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp
        llvm/trunk/test/MC/COFF/alias.s
        llvm/trunk/test/MC/COFF/weak-alias-local.s
        llvm/trunk/test/MC/COFF/weak-val.s
        llvm/trunk/test/MC/COFF/weak.s
        llvm/trunk/test/Object/X86/nm-coff.s
    
    Modified: llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp
    URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_MC_WinCOFFObjectWriter.cpp-3Frev-3D364370-26r1-3D364369-26r2-3D364370-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=EKnfyKP7hyrAuXtIlRnA_uMI3gPViyUu3uHnvKEsJ4g&s=gw_6arKfVbDVgBQI33CUgLNAxqSjNklWCT59bGiSuHM&e= 
    ==============================================================================
    --- llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp (original)
    +++ llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp Tue Jun 25 18:09:52 2019
    @@ -387,7 +387,7 @@ void WinCOFFObjectWriter::DefineSymbol(c
         Sym->Aux[0].AuxType = ATWeakExternal;
         Sym->Aux[0].Aux.WeakExternal.TagIndex = 0;
         Sym->Aux[0].Aux.WeakExternal.Characteristics =
    -        COFF::IMAGE_WEAK_EXTERN_SEARCH_LIBRARY;
    +        COFF::IMAGE_WEAK_EXTERN_SEARCH_ALIAS;
       } else {
         if (!Base)
           Sym->Data.SectionNumber = COFF::IMAGE_SYM_ABSOLUTE;
    
    Modified: llvm/trunk/test/MC/COFF/alias.s
    URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_test_MC_COFF_alias.s-3Frev-3D364370-26r1-3D364369-26r2-3D364370-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=EKnfyKP7hyrAuXtIlRnA_uMI3gPViyUu3uHnvKEsJ4g&s=mV87Br2YpGMkaOeVLuAbsa66kTdLqphsWUkYyS5_b5k&e= 
    ==============================================================================
    --- llvm/trunk/test/MC/COFF/alias.s (original)
    +++ llvm/trunk/test/MC/COFF/alias.s Tue Jun 25 18:09:52 2019
    @@ -91,7 +91,7 @@ weak_aliased_to_external = external2
     // CHECK-NEXT:     AuxSymbolCount: 1
     // CHECK-NEXT:     AuxWeakExternal {
     // CHECK-NEXT:       Linked: external2
    -// CHECK-NEXT:       Search: Library (0x2)
    +// CHECK-NEXT:       Search: Alias (0x3)
     // CHECK-NEXT:     }
     // CHECK-NEXT:   }
     // CHECK-NEXT:   Symbol {
    
    Modified: llvm/trunk/test/MC/COFF/weak-alias-local.s
    URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_test_MC_COFF_weak-2Dalias-2Dlocal.s-3Frev-3D364370-26r1-3D364369-26r2-3D364370-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=EKnfyKP7hyrAuXtIlRnA_uMI3gPViyUu3uHnvKEsJ4g&s=gWdqq2cI-xAKojsFVHwdHXyDL0yhcFvyK3jmGQ6hmug&e= 
    ==============================================================================
    --- llvm/trunk/test/MC/COFF/weak-alias-local.s (original)
    +++ llvm/trunk/test/MC/COFF/weak-alias-local.s Tue Jun 25 18:09:52 2019
    @@ -29,7 +29,7 @@ a=b
     // CHECK-NEXT:   AuxSymbolCount: 1
     // CHECK-NEXT:   AuxWeakExternal {
     // CHECK-NEXT:     Linked: .weak.a.default (9)
    -// CHECK-NEXT:     Search: Library (0x2)
    +// CHECK-NEXT:     Search: Alias (0x3)
     // CHECK-NEXT:   }
     // CHECK-NEXT: }
     // CHECK-NEXT: Symbol {
    
    Modified: llvm/trunk/test/MC/COFF/weak-val.s
    URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_test_MC_COFF_weak-2Dval.s-3Frev-3D364370-26r1-3D364369-26r2-3D364370-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=EKnfyKP7hyrAuXtIlRnA_uMI3gPViyUu3uHnvKEsJ4g&s=n3GOxKvw_hzhk5VFoeaTi2htMJAoGcuaPTd-PKaGr40&e= 
    ==============================================================================
    --- llvm/trunk/test/MC/COFF/weak-val.s (original)
    +++ llvm/trunk/test/MC/COFF/weak-val.s Tue Jun 25 18:09:52 2019
    @@ -19,7 +19,7 @@ b:
     // CHECK-NEXT:   AuxSymbolCount: 1
     // CHECK-NEXT:   AuxWeakExternal {
     // CHECK-NEXT:     Linked: .weak.b.default (8)
    -// CHECK-NEXT:     Search: Library (0x2)
    +// CHECK-NEXT:     Search: Alias (0x3)
     // CHECK-NEXT:   }
     // CHECK-NEXT: }
     // CHECK-NEXT: Symbol {
    
    Modified: llvm/trunk/test/MC/COFF/weak.s
    URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_test_MC_COFF_weak.s-3Frev-3D364370-26r1-3D364369-26r2-3D364370-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=EKnfyKP7hyrAuXtIlRnA_uMI3gPViyUu3uHnvKEsJ4g&s=4czONOdFN7Zxt45siOk1rEKjtaz0bnWykFXD8l9C8xI&e= 
    ==============================================================================
    --- llvm/trunk/test/MC/COFF/weak.s (original)
    +++ llvm/trunk/test/MC/COFF/weak.s Tue Jun 25 18:09:52 2019
    @@ -54,7 +54,7 @@ LBB0_2:
     // CHECK-NEXT:   AuxSymbolCount: 1
     // CHECK-NEXT:   AuxWeakExternal {
     // CHECK-NEXT:     Linked: .weak._test_weak.default
    -// CHECK-NEXT:      Search: Library
    +// CHECK-NEXT:      Search: Alias
     // CHECK-NEXT:   }
     // CHECK-NEXT: }
     
    @@ -78,7 +78,7 @@ LBB0_2:
     // CHECK-NEXT:   AuxSymbolCount: 1
     // CHECK-NEXT:   AuxWeakExternal {
     // CHECK-NEXT:     Linked: .weak._test_weak_alias.default
    -// CHECK-NEXT:      Search: Library
    +// CHECK-NEXT:      Search: Alias
     // CHECK-NEXT:   }
     // CHECK-NEXT: }
     
    
    Modified: llvm/trunk/test/Object/X86/nm-coff.s
    URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_test_Object_X86_nm-2Dcoff.s-3Frev-3D364370-26r1-3D364369-26r2-3D364370-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=EKnfyKP7hyrAuXtIlRnA_uMI3gPViyUu3uHnvKEsJ4g&s=h-ZQmCEQKwkdueB8zbOYMEFVxi4JaHm5WkK6ZoPowl0&e= 
    ==============================================================================
    --- llvm/trunk/test/Object/X86/nm-coff.s (original)
    +++ llvm/trunk/test/Object/X86/nm-coff.s Tue Jun 25 18:09:52 2019
    @@ -1,9 +1,14 @@
    -// RUN: llvm-mc %s -o %t -filetype=obj -triple=x86_64-pc-win32
    -// RUN: llvm-nm --undefined-only %t | FileCheck %s
    -// CHECK: w foo
    +// RUN: llvm-mc -triple x86_64-unknown-windows-msvc -filetype obj -o - %s | llvm-readobj --symbols - | FileCheck %s
     
     g:
     	movl	foo(%rip), %eax
     	retq
     
     	.weak	foo
    +
    +// CHECK: Symbol {
    +// CHECK:   Name: foo
    +// CHECK:   Section: IMAGE_SYM_UNDEFINED (0)
    +// CHECK:   StorageClass: WeakExternal (0x69)
    +// CHECK: }
    +
    
    
    _______________________________________________
    llvm-commits mailing list
    llvm-commits at lists.llvm.org
    https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Dcommits&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=EKnfyKP7hyrAuXtIlRnA_uMI3gPViyUu3uHnvKEsJ4g&s=C82Qv2roVy4n70l9Uv25OXVvh8w6aoThDNgddXK4KOQ&e= 
    



More information about the llvm-commits mailing list