[all-commits] [llvm/llvm-project] 829823: [lldb/DWARF] More DW_AT_const_value fixes

Pavel Labath via All-commits all-commits at lists.llvm.org
Wed Aug 26 04:24:36 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 82982304d7095891b10faacdbf9b4eb73e92a92f
      https://github.com/llvm/llvm-project/commit/82982304d7095891b10faacdbf9b4eb73e92a92f
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2020-08-26 (Wed, 26 Aug 2020)

  Changed paths:
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
    A lldb/test/Shell/SymbolFile/DWARF/DW_AT_const_value-bitfields.s
    M lldb/test/Shell/SymbolFile/DWARF/DW_AT_const_value.s

  Log Message:
  -----------
  [lldb/DWARF] More DW_AT_const_value fixes

This fixes several issues in handling of DW_AT_const_value attributes:
- the first is that the size of the data given by data forms does not
  need to match the size of the underlying variable. We already had the
  case to handle this for DW_FORM_(us)data -- this extends the handling
  to other data forms. The main reason this was not picked up is because
  clang uses leb forms in these cases while gcc prefers the fixed-size
  ones.
- The handling of DW_AT_strp form was completely broken -- we would end
  up using the pointer value as the result. I've reorganized this code
  so that it handles all string forms uniformly.
- In case of a completely bogus form we would crash due to
  strlen(nullptr).

Depends on D86311.

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




More information about the All-commits mailing list