Skip to content
This repository was archived by the owner on Apr 23, 2020. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: llvm-mirror/lldb
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: rust-lang/lldb
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: rust-release-80-v1
Choose a head ref
  • 17 commits
  • 56 files changed
  • 1 contributor

Commits on Aug 28, 2018

  1. Add Rust support to Mangled

    This adds Rust support to Mangled.  I am not completely certain that
    this is needed (or alternatively that it does enough, maybe
    Mangled::GuessLanguage needs a Rust case).  This should be checked
    before attempting to upstream.
    tromey committed Aug 28, 2018

    Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    UlisesGascon Ulises Gascón
    Copy the full SHA
    bc6c809 View commit details
  2. Add DIERef::operator==

    This was needed for the Rust plugin
    tromey committed Aug 28, 2018
    Copy the full SHA
    3223e20 View commit details
  3. Add a missing TypeAndOrName constructor

    Add a TypeAndOrName constructor that was declared but not defined.
    This is used in the Rust plugin.  See https://reviews.llvm.org/D44752
    tromey committed Aug 28, 2018
    Copy the full SHA
    8a028a2 View commit details
  4. Copy the full SHA
    5fcf9e8 View commit details
  5. The Rust plugin

    tromey committed Aug 28, 2018
    Copy the full SHA
    486a18e View commit details
  6. Compute Python library suffix in CMakeLists.txt

    Introduce LLDB_PY_LIB_SUFFIX and use it in various places in the
    build.  This lets the x.py-based build work properly without having to
    set LLVM_LIBDIR_SUFFIX.
    
    See https://bugs.llvm.org/show_bug.cgi?id=18957 for some discussion.
    tromey committed Aug 28, 2018
    Copy the full SHA
    7f69ffc View commit details
  7. Do not crash when enum discriminant is not recognized

    Sometimes the DWARF can omit information about a discriminant, for
    example when an Option shares a discriminant slot with an enum that it
    wraps.  In this case, lldb could crash, because the discriminant was
    not found and because there was no default variant.
    
    No test case because this relies on a compiler bug that will soon be
    fixed.
    
    Fixes #16
    tromey committed Aug 28, 2018
    Copy the full SHA
    3be47d2 View commit details

Commits on Sep 5, 2018

  1. Use correct include path for State.h

    While rebasing to master, I missed a spot where an include file was
    moved.  I believe my local build was picking up an installed copy of
    the header, causing it to succeed locally.
    tromey committed Sep 5, 2018
    Copy the full SHA
    7728fa2 View commit details

Commits on Oct 2, 2018

  1. Add "rust-enabled" to --version output

    This adds "rust-enabled" to the --version output, so it's easier to
    tell if lldb has rust support.
    tromey committed Oct 2, 2018
    Copy the full SHA
    2a643a2 View commit details

Commits on Oct 22, 2018

  1. Fix handling of variant parts

    This fixes a couple of problems noticed while debugging the rust
    compiler change to use DW_TAG_variant_part:
    
    * IterableDIEChildren returned one extra DIE, because it did not
      preserve the CU in end()
    
    * The entire block dealing with DW_TAG_variant_part was erroneously
      inside the DW_TAG_member case.
    tromey committed Oct 22, 2018
    Copy the full SHA
    29bf485 View commit details

Commits on Oct 25, 2018

  1. Give names to tuple fields

    This gives numeric names to tuple fields, because lldb clients expect
    fields to have names, and because using plain numbers seemed most
    rust-like.
    
    Closes #21
    tromey committed Oct 25, 2018
    Copy the full SHA
    e354c48 View commit details

Commits on Oct 26, 2018

  1. Rename tuple fields after discriminant is removed

    When the discriminant is removed from an enum's members, be sure to
    rename the fields of any tuple type.  This fixes a bug introduced in
    yesterday's patch.
    tromey committed Oct 26, 2018
    Copy the full SHA
    fdea743 View commit details

Commits on Nov 9, 2018

  1. Fix field names when emitting a C structure

    Prepend an underscore to field names when emitting a C structure, to
    ensure that tuple fields have valid names.
    tromey committed Nov 9, 2018
    Copy the full SHA
    08f787c View commit details
  2. Remove by-name cache from RustASTContext

    Remove the by-name cache from RustASTContext.  This was not needed and
    could interact badly with the DWARF parser.  Closes #22
    tromey committed Nov 9, 2018
    Copy the full SHA
    c167b6a View commit details

Commits on Nov 14, 2018

  1. Disable enum type test

    This disables aaan enum type name test that is failing with git master
    rustc.  See #24.
    tromey committed Nov 14, 2018
    Copy the full SHA
    2797eb7 View commit details
  2. Read template parameters for structure types

    Read DW_TAG_template_type_parameter and apply to structure types.
    tromey committed Nov 14, 2018
    Copy the full SHA
    15678a3 View commit details
  3. Read template parameters for function types

    Read DW_TAG_template_type_parameter and apply to function types.
    
    Closes #5
    tromey committed Nov 14, 2018
    Copy the full SHA
    2f6fe7e View commit details
Showing with 10,069 additions and 9 deletions.
  1. +8 −1 CMakeLists.txt
  2. +1 −1 docs/CMakeLists.txt
  3. +1 −0 include/lldb/Expression/ExpressionTypeSystemHelper.h
  4. +1 −1 include/lldb/Expression/ExpressionVariable.h
  5. +470 −0 include/lldb/Symbol/RustASTContext.h
  6. +1 −0 include/lldb/Symbol/TypeSystem.h
  7. +2 −0 include/lldb/lldb-forward.h
  8. +11 −0 packages/Python/lldbsuite/test/decorators.py
  9. +83 −0 packages/Python/lldbsuite/test/lang/rust/calls/TestRustCalls.py
  10. +86 −0 packages/Python/lldbsuite/test/lang/rust/calls/main.rs
  11. +164 −0 packages/Python/lldbsuite/test/lang/rust/expressions/TestRustExpressions.py
  12. +86 −0 packages/Python/lldbsuite/test/lang/rust/expressions/main.rs
  13. +88 −0 packages/Python/lldbsuite/test/lang/rust/names/TestRustNames.py
  14. +69 −0 packages/Python/lldbsuite/test/lang/rust/names/main.rs
  15. +185 −0 packages/Python/lldbsuite/test/lang/rust/types/TestRustASTContext.py
  16. +83 −0 packages/Python/lldbsuite/test/lang/rust/types/main.rs
  17. +17 −0 packages/Python/lldbsuite/test/lldbtest.py
  18. +3 −3 scripts/CMakeLists.txt
  19. +1 −1 scripts/Python/modules/readline/CMakeLists.txt
  20. +33 −0 scripts/get_libdir_suffix.py
  21. +9 −0 source/API/SystemInitializerFull.cpp
  22. +2 −0 source/Core/CMakeLists.txt
  23. +34 −0 source/Core/Mangled.cpp
  24. +1 −0 source/Plugins/ExpressionParser/CMakeLists.txt
  25. +19 −0 source/Plugins/ExpressionParser/Rust/CMakeLists.txt
  26. +826 −0 source/Plugins/ExpressionParser/Rust/RustAST.h
  27. +200 −0 source/Plugins/ExpressionParser/Rust/RustFunctionCaller.cpp
  28. +46 −0 source/Plugins/ExpressionParser/Rust/RustFunctionCaller.h
  29. +654 −0 source/Plugins/ExpressionParser/Rust/RustLex.cpp
  30. +168 −0 source/Plugins/ExpressionParser/Rust/RustLex.h
  31. +2,285 −0 source/Plugins/ExpressionParser/Rust/RustParse.cpp
  32. +90 −0 source/Plugins/ExpressionParser/Rust/RustParse.h
  33. +68 −0 source/Plugins/ExpressionParser/Rust/RustUserExpression.cpp
  34. +63 −0 source/Plugins/ExpressionParser/Rust/RustUserExpression.h
  35. +1 −0 source/Plugins/Language/CMakeLists.txt
  36. +11 −0 source/Plugins/Language/Rust/CMakeLists.txt
  37. +60 −0 source/Plugins/Language/Rust/RustLanguage.cpp
  38. +50 −0 source/Plugins/Language/Rust/RustLanguage.h
  39. +1 −0 source/Plugins/LanguageRuntime/CMakeLists.txt
  40. +10 −0 source/Plugins/LanguageRuntime/Rust/CMakeLists.txt
  41. +119 −0 source/Plugins/LanguageRuntime/Rust/RustLanguageRuntime.cpp
  42. +78 −0 source/Plugins/LanguageRuntime/Rust/RustLanguageRuntime.h
  43. +1 −0 source/Plugins/SymbolFile/DWARF/CMakeLists.txt
  44. +2 −0 source/Plugins/SymbolFile/DWARF/DIERef.h
  45. +1,210 −0 source/Plugins/SymbolFile/DWARF/DWARFASTParserRust.cpp
  46. +135 −0 source/Plugins/SymbolFile/DWARF/DWARFASTParserRust.h
  47. +1 −0 source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
  48. +1 −0 source/Symbol/CMakeLists.txt
  49. +0 −2 source/Symbol/ClangASTContext.cpp
  50. +2,213 −0 source/Symbol/RustASTContext.cpp
  51. +7 −0 source/Symbol/Type.cpp
  52. +4 −0 source/lldb.cpp
  53. +1 −0 unittests/CMakeLists.txt
  54. +8 −0 unittests/Rust/CMakeLists.txt
  55. +171 −0 unittests/Rust/RustLexTest.cpp
  56. +127 −0 unittests/Rust/RustParseTest.cpp
9 changes: 8 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -64,6 +64,13 @@ if(LLDB_BUILD_FRAMEWORK)
include(LLDBFramework)
endif()

if (NOT LLDB_DISABLE_PYTHON)
execute_process(
COMMAND
${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/get_libdir_suffix.py
OUTPUT_VARIABLE LLDB_PY_LIB_SUFFIX)
endif ()

add_subdirectory(docs)
if (NOT LLDB_DISABLE_PYTHON)
if(LLDB_USE_SYSTEM_SIX)
@@ -176,7 +183,7 @@ if (NOT LLDB_DISABLE_PYTHON)
--cfgBldDir=${LLDB_PYTHON_TARGET_DIR}
--prefix=${CMAKE_BINARY_DIR}
--cmakeBuildConfiguration=${CMAKE_CFG_INTDIR}
--lldbLibDir=lib${LLVM_LIBDIR_SUFFIX}
--lldbLibDir=lib${LLDB_PY_LIB_SUFFIX}
${SIX_EXTRA_ARGS}
${FINISH_EXTRA_ARGS}
VERBATIM
2 changes: 1 addition & 1 deletion docs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -35,7 +35,7 @@ if(EPYDOC_EXECUTABLE)
--url "http://lldb.llvm.org"
${EPYDOC_OPTIONS}
DEPENDS swig_wrapper liblldb
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../../../lib${LLVM_LIBDIR_SUFFIX}/python2.7/site-packages
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../../../lib${LLDB_PY_LIB_SUFFIX}/python2.7/site-packages
COMMENT "Generating LLDB Python API reference with epydoc" VERBATIM
)
endif(EPYDOC_EXECUTABLE)
1 change: 1 addition & 0 deletions include/lldb/Expression/ExpressionTypeSystemHelper.h
Original file line number Diff line number Diff line change
@@ -32,6 +32,7 @@ class ExpressionTypeSystemHelper {
eKindClangHelper,
eKindSwiftHelper,
eKindGoHelper,
eKindRustHelper,
kNumKinds
};

2 changes: 1 addition & 1 deletion include/lldb/Expression/ExpressionVariable.h
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ class ExpressionVariable
//----------------------------------------------------------------------
// See TypeSystem.h for how to add subclasses to this.
//----------------------------------------------------------------------
enum LLVMCastKind { eKindClang, eKindSwift, eKindGo, kNumKinds };
enum LLVMCastKind { eKindClang, eKindSwift, eKindGo, eKindRust, kNumKinds };

LLVMCastKind getKind() const { return m_kind; }

Loading