[llvm] b93119a - Revert "[dsymutil] Account for DW_OP_convert being CU relative"

Nico Weber via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 12 16:36:50 PDT 2022


Author: Nico Weber
Date: 2022-07-12T19:36:21-04:00
New Revision: b93119aad7bc777d1e65bf4545ace2d40948e46a

URL: https://github.com/llvm/llvm-project/commit/b93119aad7bc777d1e65bf4545ace2d40948e46a
DIFF: https://github.com/llvm/llvm-project/commit/b93119aad7bc777d1e65bf4545ace2d40948e46a.diff

LOG: Revert "[dsymutil] Account for DW_OP_convert being CU relative"

This reverts commit 7f3000fa8b321f7fae169a615734de74a737b5d4.
Breaks tests on Windows, see commits on https://reviews.llvm.org/rG7f3000fa

Added: 
    

Modified: 
    llvm/lib/DWARFLinker/DWARFLinker.cpp

Removed: 
    llvm/test/tools/dsymutil/Inputs/private/tmp/op-convert-offset/op-convert-offset
    llvm/test/tools/dsymutil/Inputs/private/tmp/op-convert-offset/op-convert-offset.o
    llvm/test/tools/dsymutil/X86/op-convert-offset.test


################################################################################
diff  --git a/llvm/lib/DWARFLinker/DWARFLinker.cpp b/llvm/lib/DWARFLinker/DWARFLinker.cpp
index 298359dea9af..50c52190c1f6 100644
--- a/llvm/lib/DWARFLinker/DWARFLinker.cpp
+++ b/llvm/lib/DWARFLinker/DWARFLinker.cpp
@@ -1005,7 +1005,6 @@ void DWARFLinker::DIECloner::cloneExpression(
       // instead indicate the generic type. The same holds for
       // DW_OP_reinterpret, which is currently not supported.
       if (RefOffset > 0 || Op.getCode() != dwarf::DW_OP_convert) {
-        RefOffset += Unit.getOrigUnit().getOffset();
         auto RefDie = Unit.getOrigUnit().getDIEForOffset(RefOffset);
         CompileUnit::DIEInfo &Info = Unit.getInfo(RefDie);
         if (DIE *Clone = Info.Clone)

diff  --git a/llvm/test/tools/dsymutil/Inputs/private/tmp/op-convert-offset/op-convert-offset b/llvm/test/tools/dsymutil/Inputs/private/tmp/op-convert-offset/op-convert-offset
deleted file mode 100755
index d9cf1dac928a..000000000000
Binary files a/llvm/test/tools/dsymutil/Inputs/private/tmp/op-convert-offset/op-convert-offset and /dev/null 
diff er

diff  --git a/llvm/test/tools/dsymutil/Inputs/private/tmp/op-convert-offset/op-convert-offset.o b/llvm/test/tools/dsymutil/Inputs/private/tmp/op-convert-offset/op-convert-offset.o
deleted file mode 100644
index 087e4e7f37c3..000000000000
Binary files a/llvm/test/tools/dsymutil/Inputs/private/tmp/op-convert-offset/op-convert-offset.o and /dev/null 
diff er

diff  --git a/llvm/test/tools/dsymutil/X86/op-convert-offset.test b/llvm/test/tools/dsymutil/X86/op-convert-offset.test
deleted file mode 100644
index 92dd620c183c..000000000000
--- a/llvm/test/tools/dsymutil/X86/op-convert-offset.test
+++ /dev/null
@@ -1,49 +0,0 @@
-# To rebuild the test case:
-#
-# $ cat op-convert-offset0.c
-# extern int a[2];
-#
-# int foo(_Bool b) {
-#   return b ? a[1] : a[0];
-# }
-# $ cat op-convert-offset1.c
-# int a[2] = {1, 2};
-#
-# int foo(_Bool);
-#
-# int main() {
-#   return foo(0);
-# }
-# $ xcrun clang -g -O2 -c -target x86_64-apple-unknown-macho op-convert-offset1.c -emit-llvm
-# $ xcrun clang -g -O2 -c -target x86_64-apple-unknown-macho op-convert-offset0.c -emit-llvm
-# $ llvm-link op-convert-offset1.bc op-convert-offset0.bc -o op-convert-offset.ll -S
-# $ xcrun clang -c op-convert-offset.ll -O0 -arch x86_64
-# $ xcrun clang -g op-convert-offset.o -O0 -arch x86_64 -o op-convert-offset
-
-RUN: dsymutil -oso-prepend-path %p/../Inputs %p/../Inputs/private/tmp/op-convert-offset/op-convert-offset -o %t.dSYM 2>&1
-RUN: llvm-dwarfdump %p/../Inputs/private/tmp/op-convert-offset/op-convert-offset.o 2>&1 | FileCheck %s --check-prefix OBJ
-RUN: llvm-dwarfdump %t.dSYM 2>&1 | FileCheck %s --check-prefix DSYM
-
-OBJ: 0x0000007d:   DW_TAG_base_type
-OBJ:                 DW_AT_name      ("DW_ATE_unsigned_1")
-OBJ:                 DW_AT_encoding  (DW_ATE_unsigned)
-OBJ:                 DW_AT_byte_size (0x01)
-
-OBJ: 0x00000094:     DW_TAG_formal_parameter
-OBJ:                   DW_AT_location        (DW_OP_breg2 RCX+0, DW_OP_constu 0xff, DW_OP_and, DW_OP_convert (0x0000007d) "DW_ATE_unsigned_1", DW_OP_convert (0x00000081) "DW_ATE_unsigned_8", DW_OP_stack_value)
-OBJ:                   DW_AT_name    ("b")
-OBJ:                   DW_AT_decl_file       ("/tmp/op-convert-offset/op-convert-offset0.c")
-OBJ:                   DW_AT_decl_line       (3)
-OBJ:                   DW_AT_type    (0x000000af "_Bool")
-
-DSYM: 0x00000095:   DW_TAG_base_type
-DSYM:                 DW_AT_name      ("DW_ATE_unsigned_1")
-DSYM:                 DW_AT_encoding  (DW_ATE_unsigned)
-DSYM:                 DW_AT_byte_size (0x01)
-
-DSYM: 0x000000bc:     DW_TAG_formal_parameter
-DSYM:                   DW_AT_location        (DW_OP_breg2 RCX+0, DW_OP_constu 0xff, DW_OP_and, DW_OP_convert (0x00000095) "DW_ATE_unsigned_1", DW_OP_convert (0x0000009c) "DW_ATE_unsigned_8", DW_OP_stack_value)
-DSYM:                   DW_AT_name    ("b")
-DSYM:                   DW_AT_decl_file       (0x00)
-DSYM:                   DW_AT_decl_line       (3)
-DSYM:                   DW_AT_type    (0x000000da "_Bool")


        


More information about the llvm-commits mailing list