[all-commits] [llvm/llvm-project] 895529: [lldb][PDB] Constexpr static member values as AST ...

aleksandr-urakov via All-commits all-commits at lists.llvm.org
Thu Jun 25 01:27:59 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 895529cfd8756e2b4dc609f5af92e0d8ae280ed8
      https://github.com/llvm/llvm-project/commit/895529cfd8756e2b4dc609f5af92e0d8ae280ed8
  Author: Aleksandr Urakov <Aleksandr.Urakov at jetbrains.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
    M lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp
    M lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.h
    M lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
    M lldb/test/Shell/SymbolFile/PDB/Inputs/AstRestoreTest.cpp
    M lldb/test/Shell/SymbolFile/PDB/ast-restore.test
    M llvm/include/llvm/DebugInfo/PDB/PDBTypes.h

  Log Message:
  -----------
  [lldb][PDB] Constexpr static member values as AST literals

Summary:
When evaluating an expression referencing a constexpr static member variable, an
error is issued because the PDB does not specify a symbol with an address that
can be relocated against.

Rather than attempt to resolve the variable's value within the IR execution, the
values of all constants can be looked up and incorporated into the AST of the
record type as a literal, mirroring the original compiler AST.

This change applies to DIA and native PDB loaders.

Patch By: jackoalan

Reviewers: aleksandr.urakov, jasonmolenda, zturner, jdoerfert, teemperor

Reviewed By: aleksandr.urakov

Subscribers: sstefan1, lldb-commits, llvm-commits, #lldb

Tags: #lldb, #llvm

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




More information about the All-commits mailing list