diff options
author | Dave Watson <dade.watson@gmail.com> | 2022-05-24 11:06:17 -0700 |
---|---|---|
committer | Dave Watson <dade.watson@gmail.com> | 2022-05-24 11:06:17 -0700 |
commit | 7cf6e84bb86ff5840896b4910ccc3865d4f00ffb (patch) | |
tree | 584017df7ceb1b14c86733e276d4260fdbc367b6 /src | |
parent | 7dc184fbeb550c8710a7b25a1462968c7bfed92a (diff) | |
download | libunwind-7cf6e84bb86ff5840896b4910ccc3865d4f00ffb.tar.gz |
Revert "Address CA issue using existing libunwind macros and explicit casting"
This reverts commit a9d50ef5066e8ff959dee5df5f997cc72c528f26.
Diffstat (limited to 'src')
-rw-r--r-- | src/dwarf/Gexpr.c | 4 | ||||
-rw-r--r-- | src/dwarf/Gparser.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/dwarf/Gexpr.c b/src/dwarf/Gexpr.c index d1cb2375..977c5593 100644 --- a/src/dwarf/Gexpr.c +++ b/src/dwarf/Gexpr.c @@ -530,7 +530,7 @@ if (stackerror) \ Debug (15, "OP_abs\n"); tmp1 = pop (); if (tmp1 & ((unw_word_t) 1 << (8 * dwarf_addr_size (as) - 1))) - tmp1 = (unw_word_t)(-(unw_sword_t)tmp1); + tmp1 = (~tmp1 + 1); push (tmp1); break; @@ -578,7 +578,7 @@ if (stackerror) \ case DW_OP_neg: Debug (15, "OP_neg\n"); - push (-(unw_sword_t)pop ()); + push (~pop () + 1); break; case DW_OP_not: diff --git a/src/dwarf/Gparser.c b/src/dwarf/Gparser.c index 2edb511d..36d0bedd 100644 --- a/src/dwarf/Gparser.c +++ b/src/dwarf/Gparser.c @@ -397,9 +397,9 @@ run_cfi_program (struct dwarf_cursor *c, dwarf_state_record_t *sr, if (((ret = read_regnum (as, a, addr, ®num, arg)) < 0) || ((ret = dwarf_read_uleb128 (as, a, addr, &val, arg)) < 0)) break; - set_reg (sr, regnum, DWARF_WHERE_CFAREL, (unw_word_t)(-(unw_sword_t)val)); + set_reg (sr, regnum, DWARF_WHERE_CFAREL, ~(val * dci->data_align) + 1); Debug (15, "CFA_GNU_negative_offset_extended cfa+0x%lx\n", - (long)(unw_word_t)(-(unw_sword_t)val)); + (long) (~(val * dci->data_align) + 1)); break; case DW_CFA_GNU_window_save: |