[PATCH] D54327: Adding debug info to support Fortran (part 3)

John Reagan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 9 10:57:41 PST 2018


JohnReagan added a comment.

I don't understand the need for the "common alpha" global variable.  For VMS Fortran on Itanium (not LLVM), we generate the following DWARF for

COMMON /ALPHA/ I,J

  0x0000008f:     DW_TAG_common_block [5] *
                    DW_AT_name [DW_FORM_string]	("ALPHA")
                    DW_AT_location [DW_FORM_block1]	(<0x09> 03 00 00 00 00 00 00 00 00 )
  
  0x000000a0:       DW_TAG_base_type [6]  
                      DW_AT_name [DW_FORM_string]	("integer*4")
                      DW_AT_encoding [DW_FORM_data1]	(0x05)
                      DW_AT_byte_size [DW_FORM_udata]	(4)
  
  0x000000ad:       DW_TAG_variable [4]  
                      DW_AT_name [DW_FORM_string]	("I")
                      DW_AT_type [DW_FORM_ref4]	(cu + 0x00a0 => {0x000000a0})
                      DW_AT_location [DW_FORM_block1]	(<0x09> 03 00 00 00 00 00 00 00 00 )
  
  0x000000be:       DW_TAG_variable [4]  
                      DW_AT_name [DW_FORM_string]	("J")
                      DW_AT_type [DW_FORM_ref4]	(cu + 0x00a0 => {0x000000a0})
                      DW_AT_location [DW_FORM_block1]	(<0x09> 03 00 00 00 00 00 00 00 00 )
  
  0x000000cf:       NULL
  
  0x000000d0:     DW_TAG_common_inclusion [7]  
                    DW_AT_common_reference [DW_FORM_ref4]	(cu + 0x008f => {0x0000008f})

with 3 DIRLSB64s relocations for the DW_AT_locations

[I don't have an Itanium obdump so forgive our platform-specific format]

                     Relocation Entry 3.
  00000AE8 00000048    Sec. 21. offset affected:   0000000000000098                                       rela$pq_r_offset
                       Relocation Entry Info:      0000000700000027                                       rela$q_r_info
  00000AF0 00000050      Relocation Type:                  00000027          DIR64LSB                     rela$l_r_type
  00000AF4 00000054      Sec 12. Sym Index:                00000007       7.                              rela$l_r_sym
                         Symbol Bound to Section:          00000008       8. "ALPHA"
  00000AF8 00000058    Relocation addend:          0000000000000000                                       rela$q_r_addend
                     Relocation Entry 4.
  00000B00 00000060    Sec. 21. offset affected:   00000000000000B6                                       rela$pq_r_offset
                       Relocation Entry Info:      0000000700000027                                       rela$q_r_info
  00000B08 00000068      Relocation Type:                  00000027          DIR64LSB                     rela$l_r_type
  00000B0C 0000006C      Sec 12. Sym Index:                00000007       7.                              rela$l_r_sym
                         Symbol Bound to Section:          00000008       8. "ALPHA"
  00000B10 00000070    Relocation addend:          0000000000000000                                       rela$q_r_addend
                     Relocation Entry 5.
  00000B18 00000078    Sec. 21. offset affected:   00000000000000C7                                       rela$pq_r_offset
                       Relocation Entry Info:      0000000700000027                                       rela$q_r_info
  00000B20 00000080      Relocation Type:                  00000027          DIR64LSB                     rela$l_r_type
  00000B24 00000084      Sec 12. Sym Index:                00000007       7.                              rela$l_r_sym
                         Symbol Bound to Section:          00000008       8. "ALPHA"
  00000B28 00000088    Relocation addend:          0000000000000004                                       rela$q_r_addend




Repository:
  rL LLVM

https://reviews.llvm.org/D54327





More information about the llvm-commits mailing list