HomePhabricator

[lldb] [ObjectFile/ELF] Fix negated seg ids on 32-bit arches

Authored by mgorny on Feb 3 2020, 11:32 AM.

Description

[lldb] [ObjectFile/ELF] Fix negated seg ids on 32-bit arches

Scale segment identifier up to user_id_t before negating it. This fixes
the identifers being wrongly e.g. 0x00000000fffffffe instead of
0xfffffffffffffffe. Fix suggested by Pavel Labath.

This fixes 5 tests failing on i386 (PR #44748):

lldb-shell :: ObjectFile/ELF/PT_LOAD-overlap-PT_INTERP.yaml
lldb-shell :: ObjectFile/ELF/PT_LOAD-overlap-PT_TLS.yaml
lldb-shell :: ObjectFile/ELF/PT_LOAD-overlap-section.yaml
lldb-shell :: ObjectFile/ELF/PT_LOAD.yaml
lldb-shell :: ObjectFile/ELF/PT_TLS-overlap-PT_LOAD.yaml

Differential Revision: https://reviews.llvm.org/D73914

Details