[PATCH] Remove left over "negate" adjustment in compute_abbrevs.

Mark Wielaard mark@klomp.org
Sun Feb 14 15:34:43 GMT 2021


Before commit 47af8da7c "Assorted DW_FORM_implicit_const fixes" there
was a hack to track whether decl/call_file line numbers had been
translated already. This worked by negating the value once it was and
not translating again when the value was negative. Then in
compute_abbrevs all negated values we made positive again. Most of
this hack was removed in the above commit. Except for making all
negated values positive again in compute_abbrevs. Remove it there too.
No decl/call_file line number tables can ever be negative.

   * dwz.c (compute_abbrevs): Remove negate adjustment for
   DW_AT_decl_file and DW_AT_call_file attribute DW_FORM_implicit_const
   values.
---
 dwz.c | 15 +--------------
 1 file changed, 1 insertion(+), 14 deletions(-)

diff --git a/dwz.c b/dwz.c
index 992da77..0664052 100644
--- a/dwz.c
+++ b/dwz.c
@@ -11622,20 +11622,7 @@ compute_abbrevs (DSO *dso)
 	      abbrev_size += size_of_uleb128 (arr[i]->attr[j].attr);
 	      abbrev_size += size_of_uleb128 (arr[i]->attr[j].form);
 	      if (arr[i]->attr[j].form == DW_FORM_implicit_const)
-		{
-		  /* If this is a shared abbrev for a file reference
-		     attribute, update to the new file number (in the
-		     mulifile .debug_line).  Note that this might
-		     change the abbrev size...  */
-		  if (unlikely (wr_multifile || op_multifile)
-		      && (arr[i]->attr[j].attr == DW_AT_decl_file
-			  || arr[i]->attr[j].attr == DW_AT_call_file))
-		    {
-		      if (arr[i]->values[j] < 0)
-			arr[i]->values[j] = -arr[i]->values[j];
-		    }
-		  abbrev_size += size_of_sleb128 (arr[i]->values[j]);
-		}
+		abbrev_size += size_of_sleb128 (arr[i]->values[j]);
 	    }
 	  abbrev_size += 2;
 	}
-- 
2.20.1



More information about the Dwz mailing list