[PATCH] D78387: [AIX][XCOFF] add symbol priority for the llvm-objdump -D -symbol-description

Digger via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 29 08:00:59 PDT 2020


DiggerLin added a comment.
Herald added a reviewer: MaskRay.

In D78387#1998567 <https://reviews.llvm.org/D78387#1998567>, @jhenderson wrote:

> This behaviour seems significantly under-tested. Just looking at the new operator, there are three different comparisons, so I'd expect to see at least 4 test cases for that alone (one for each side of the branch point). Furthermore, there's a big new switch in the same file that isn't exercised in any depth.


I do not think it is under-tested.

I dump all the symbol of the xcoff-section-headers.o

bash-5.0$ dump -tv xcoff-section-headers.o

  xcoff-section-headers.o:
  
                          ***Symbol Table Information***
  [Index] m        Value       Scn   Aux  Sclass    Type            Name
  [Index] a0                                                        Fname
  [Index] a1      Tagndx      Lnno  Size  Lnoptr    Endndx
  [Index] a2      Tagndx            Fsiz  Lnoptr    Endndx
  [Index] a3      Tagndx      Lnno  Size  Dimensions
  [Index] a4   CSlen     PARMhsh SNhash SMtype SMclass Stab SNstab
  [Index] a5      SECTlen    #RELent    #LINnums
  
  [0]     m   0x00000000     debug     3    FILE          C:COM     .file
  [1]     a0                                                        sections.c
  [2]     a0                                                        Thu Apr 18 10:26:01 2019
  [3]     a0                                                        IBM XL C for AIX, Version 16.1.0.1
  [4]     m   0x00000000     .text     1  static                    .text
  [5]     a5  0x00000080     0x0001     0x0000
  [6]     m   0x00000080     .data     1  static                    .data
  [7]     a5  0x00000024     0x0007     0x0000
  [8]     m   0x000000a4      .bss     1  static                    .bss
  [9]     a5  0x00000004     0x0000     0x0000
  [10]    m   0x00000000    .tdata     1  static                    .tdata
  [11]    a5  0x00000024     0x0000     0x0000
  [12]    m   0x00000008     .tbss     1  static                    .tbss
  [13]    a5  0x00000004     0x0000     0x0000
  [14]    m   0x00000000     .text     1  unamex                    **No Symbol**
  [15]    a4  0x00000080       0    0     SD       PR    0    0
  [16]    m   0x00000000     .text     1  extern                    .func
  [17]    a4  0x0000000e       0    0     LD       PR    0    0
  [18]    m   0x00000080     .data     1  unamex                    TOC
  [19]    a4  0x00000000       0    0     SD      TC0    0    0
  [20]    m   0x00000094     .data     1  extern                    func
  [21]    a4  0x0000000c       0    0     SD       DS    0    0
  [22]    m   0x00000080     .data     1  unamex                    func
  [23]    a4  0x00000004       0    0     SD       TC    0    0
  [24]    m   0x000000a4      .bss     1  extern                    a
  [25]    a4  0x00000004       0    0     CM       RW    0    0
  [26]    m   0x00000084     .data     1  unamex                    a
  [27]    a4  0x00000004       0    0     SD       TC    0    0
  [28]    m   0x000000a0     .data     1  extern                    b
  [29]    a4  0x00000004       0    0     SD       RW    0    0
  [30]    m   0x00000088     .data     1  unamex                    b
  [31]    a4  0x00000004       0    0     SD       TC    0    0
  [32]    m   0x00000008     .tbss     1  extern                    c
  [33]    a4  0x00000004       0    0     CM       UL    0    0
  [34]    m   0x0000008c     .data     1  unamex                    c
  [35]    a4  0x00000004       0    0     SD       TC    0    0
  [36]    m   0x00000000    .tdata     1  extern                    d
  [37]    a4  0x00000008       0    0     SD       TL    0    0
  [38]    m   0x00000090     .data     1  unamex                    d
  [39]    a4  0x00000004       0    0     SD       TC    0    0

there are 
[4]     m   0x00000000     .text     1  static                    .text
[5]     a5  0x00000080     0x0001     0x0000
[14]    m   0x00000000     .text     1  unamex                    **No Symbol**
[15]    a4  0x00000080       0    0     SD       PR    0    0
[16]    m   0x00000000     .text     1  extern                    .func
[17]    a4  0x0000000e       0    0     LD       PR    0    0

symbol .text and .func  have the same address.  symbol .text do not has storage mapping class , **No Symbol** has storage mapping class and .func is a label. 
the output is label ".func" . we tested it.

there are
[6]     m   0x00000080     .data     1  static                    .data
[7]     a5  0x00000024     0x0007     0x0000
[20]    m   0x00000094     .data     1  extern                    func
[21]    a4  0x0000000c       0    0     SD       DS    0    0
symbol .data and func[DS] have the  same address.  symbol .data do not have not has storage mapping class , func[DS] has storage mapping class. the output is func[DS].
we tested it.

there are 
[18]    m   0x00000080     .data     1  unamex                    TOC
[19]    a4  0x00000000       0    0     SD      TC0    0    0
[22]    m   0x00000080     .data     1  unamex                    func
[23]    a4  0x00000004       0    0     SD       TC    0    0
symbol .TOC and func[TC] have the  same address . the output is func[TC]  we tested  it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D78387/new/

https://reviews.llvm.org/D78387





More information about the llvm-commits mailing list