[llvm] f8e67c4 - Revert "[DWARFLinker] Handle DW_OP_GNU_push_tls_address while check for variable location."
Alexey Lapshin via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 16 02:38:26 PDT 2023
Author: Alexey Lapshin
Date: 2023-06-16T11:37:11+02:00
New Revision: f8e67c4d0eba90375cbe10bf7c922faa816e547b
URL: https://github.com/llvm/llvm-project/commit/f8e67c4d0eba90375cbe10bf7c922faa816e547b
DIFF: https://github.com/llvm/llvm-project/commit/f8e67c4d0eba90375cbe10bf7c922faa816e547b.diff
LOG: Revert "[DWARFLinker] Handle DW_OP_GNU_push_tls_address while check for variable location."
This reverts commit e89738451a3830d80fcf23554fd0b297bca60266.
Added:
Modified:
llvm/lib/DWARFLinker/DWARFLinker.cpp
Removed:
llvm/test/tools/dsymutil/X86/tls-variable.test
################################################################################
diff --git a/llvm/lib/DWARFLinker/DWARFLinker.cpp b/llvm/lib/DWARFLinker/DWARFLinker.cpp
index 619df440b695e..7d02e055e6755 100644
--- a/llvm/lib/DWARFLinker/DWARFLinker.cpp
+++ b/llvm/lib/DWARFLinker/DWARFLinker.cpp
@@ -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
index 6aabcfe22ffe2..0000000000000
--- a/llvm/test/tools/dsymutil/X86/tls-variable.test
+++ /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
-...
More information about the llvm-commits
mailing list