Revert "[DWARFLinker] Handle DW_OP_GNU_push_tls_address while check for variable...
authorAlexey Lapshin <a.v.lapshin@mail.ru>
Fri, 16 Jun 2023 09:37:11 +0000 (11:37 +0200)
committerAlexey Lapshin <a.v.lapshin@mail.ru>
Fri, 16 Jun 2023 09:37:11 +0000 (11:37 +0200)
This reverts commit e89738451a3830d80fcf23554fd0b297bca60266.

llvm/lib/DWARFLinker/DWARFLinker.cpp
llvm/test/tools/dsymutil/X86/tls-variable.test [deleted file]

index 619df44..7d02e05 100644 (file)
@@ -420,11 +420,6 @@ void DWARFLinker::cleanupAuxiliarryData(LinkContext &Context) {
   DIEAlloc.Reset();
 }
 
-static bool isTlsAddressCode(uint8_t DW_OP_Code) {
-  return DW_OP_Code == dwarf::DW_OP_form_tls_address ||
-         DW_OP_Code == dwarf::DW_OP_GNU_push_tls_address;
-}
-
 std::optional<int64_t>
 DWARFLinker::getVariableRelocAdjustment(AddressesMap &RelocMgr,
                                         const DWARFDie &DIE) {
@@ -476,7 +471,8 @@ DWARFLinker::getVariableRelocAdjustment(AddressesMap &RelocMgr,
     case dwarf::DW_OP_const8u:
     case dwarf::DW_OP_const4s:
     case dwarf::DW_OP_const8s:
-      if (NextIt == Expression.end() || !isTlsAddressCode(NextIt->getCode()))
+      if (NextIt == Expression.end() ||
+          NextIt->getCode() != dwarf::DW_OP_form_tls_address)
         break;
       [[fallthrough]];
     case dwarf::DW_OP_addr: {
diff --git a/llvm/test/tools/dsymutil/X86/tls-variable.test b/llvm/test/tools/dsymutil/X86/tls-variable.test
deleted file mode 100644 (file)
index 6aabcfe..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-## This test checks that thread local storage variables
-## are preserved.
-
-# RUN: yaml2obj %s -o %t.o
-# RUN: echo '---' > %t2.map
-# RUN: echo "triple:          'x86_64-apple-darwin'" >> %t2.map
-# RUN: echo 'objects:'  >> %t2.map
-# RUN: echo " -  filename: '%t.o'" >> %t2.map
-# RUN: echo '    symbols:' >> %t2.map
-# RUN: echo '      - { sym: __Z3foov, objAddr: 0x0, binAddr: 0x10000, size: 0x10 }' >> %t2.map
-# RUN: echo '...' >> %t2.map
-# RUN: dsymutil -y %t2.map --keep-function-for-static -f -o - | llvm-dwarfdump -a - | FileCheck %s
-
-# CHECK: file format Mach-O 64-bit x86-64
-# CHECK: .debug_info contents:
-# CHECK: Compile Unit:
-# CHECK: DW_TAG_compile_unit
-# CHECK: DW_AT_name{{.*}}"CU1"
-# CHECK: DW_TAG_subprogram
-# CHECK: DW_AT_name{{.*}}"foo"
-# CHECK: DW_TAG_variable
-# CHECK: DW_AT_name{{.*}}"var1"
-# CHECK: DW_AT_location        (DW_OP_const8u 0x10001, DW_OP_GNU_push_tls_address)
-# CHECK: DW_AT_name{{.*}}"var2"
-# CHECK: DW_AT_location        (DW_OP_const8u 0x10001, DW_OP_form_tls_address)
-
---- !mach-o
-FileHeader:
-  magic:      0xFEEDFACF
-  cputype:    0x01000007
-  cpusubtype: 0x00000003
-  filetype:   0x00000001
-  ncmds:      2
-  sizeofcmds: 376
-  flags:      0x00002000
-  reserved:   0x00000000
-LoadCommands:
-  - cmd:      LC_SEGMENT_64
-    cmdsize:  232
-    segname:  ''
-    vmaddr:   0x00
-    vmsize:   0x300
-    fileoff:  0x300
-    filesize: 0x300
-    maxprot:  7
-    initprot: 7
-    nsects:   2
-    flags:    0
-    Sections:
-      - sectname:  __debug_abbrev
-        segname:   __DWARF
-        addr:      0x000000000000000F
-        size:      0x27
-        offset:    0x00000380
-        align:     0
-        reloff:    0x00000000
-        nreloc:    0
-        flags:     0x02000000
-        reserved1: 0x00000000
-        reserved2: 0x00000000
-        reserved3: 0x00000000
-      - sectname:  __debug_info
-        segname:   __DWARF
-        addr:      0x000000000000100
-        size:      0x54
-        offset:    0x00000410
-        align:     0
-        reloff:    0x00000600
-        nreloc:    2
-        flags:     0x02000000
-        reserved1: 0x00000000
-        reserved2: 0x00000000
-        reserved3: 0x00000000
-        relocations:
-          - address:         0x32
-            symbolnum:       1
-            pcrel:           true
-            length:          3
-            extern:          true
-            type:            0
-            scattered:       false
-            value:           0
-          - address:         0x47
-            symbolnum:       1
-            pcrel:           true
-            length:          3
-            extern:          true
-            type:            0
-            scattered:       false
-            value:           0
-  - cmd:             LC_SYMTAB
-    cmdsize:         24
-    symoff:          0x700
-    nsyms:           2
-    stroff:          0x720
-    strsize:         10
-LinkEditData:
-  NameList:
-    - n_strx:          1
-      n_type:          0x0F
-      n_sect:          1
-      n_desc:          0
-      n_value:         0
-    - n_strx:          1
-      n_type:          0x0F
-      n_sect:          1
-      n_desc:          0
-      n_value:         0
-  StringTable:
-    - ''
-    - '__Z3foov'
-    - ''
-DWARF:
-  debug_abbrev:
-    - Table:
-      - Tag:      DW_TAG_compile_unit
-        Children: DW_CHILDREN_yes
-        Attributes:
-          - Attribute: DW_AT_producer
-            Form:      DW_FORM_string
-          - Attribute: DW_AT_language
-            Form:      DW_FORM_data2
-          - Attribute: DW_AT_name
-            Form:      DW_FORM_string
-      - Tag:      DW_TAG_subprogram
-        Children: DW_CHILDREN_yes
-        Attributes:
-          - Attribute: DW_AT_name
-            Form:      DW_FORM_string
-          - Attribute: DW_AT_type
-            Form:      DW_FORM_ref4
-      - Tag:      DW_TAG_variable
-        Children: DW_CHILDREN_no
-        Attributes:
-          - Attribute: DW_AT_name
-            Form:      DW_FORM_string
-          - Attribute: DW_AT_type
-            Form:      DW_FORM_ref4
-          - Attribute: DW_AT_location
-            Form:      DW_FORM_exprloc
-      - Tag:      DW_TAG_base_type
-        Children: DW_CHILDREN_no
-        Attributes:
-          - Attribute: DW_AT_name
-            Form:      DW_FORM_string
-  debug_info:
-    - Version: 4
-      Entries:
-        - AbbrCode: 1
-          Values:
-            - CStr: by_hand
-            - Value:  0x04
-            - CStr: CU1
-        - AbbrCode: 4
-          Values:
-            - CStr: int
-        - AbbrCode: 2
-          Values:
-            - CStr: foo
-            - Value: 0x1a
-        - AbbrCode: 3
-          Values:
-            - CStr: var1
-            - Value:  0x0000001a
-            - BlockData:
-                - 0x0e
-                - 0x00
-                - 0x00
-                - 0x01
-                - 0x00
-                - 0x00
-                - 0x00
-                - 0x00
-                - 0x00
-                - 0xe0
-        - AbbrCode: 3
-          Values:
-            - CStr: var2
-            - Value:  0x0000001a
-            - BlockData:
-                - 0x0e
-                - 0x00
-                - 0x00
-                - 0x01
-                - 0x00
-                - 0x00
-                - 0x00
-                - 0x00
-                - 0x00
-                - 0x9b
-        - AbbrCode: 0
-        - AbbrCode: 0
-...