llvm-project/lldb
Pavel Labath 686b27b55a [lldb][PPC64] Fixed vector and struct return value
Summary:
The PowerPC64 ABI plugin was modified to:

- properly handle vector type return values
- implement support for struct/class return values

A refactoring in the code that handles return values was also performed, to make it possible to handle structs without repeating (when possible) code that handles its fields.

There was also an issue with CreateInstance(), that only created an instance in the first time it was called and then cached it in a static var. When restarting a process under LLDB's control, the ABI's process weak pointer would become null, and using it would result in a segmentation fault. This issue became more evident after the latest changes to PPC64 plugin, that now uses the process pointer to get the target byte order, making LLDB to seg fault when restarting a program. This was fixed by making CreateInstance() to always create a new ABI instance.

All of LLDB's ReturnValue tests are passing for PPC64le now. It should work for PPC64be too, although this was not tested.

Reviewers: labath, clayborg

Reviewed By: labath

Subscribers: lbianc, anajuliapc, llvm-commits, alexandreyy, nemanjai, kbarton

Differential Revision: https://reviews.llvm.org/D42468
Patch by Leandro Lupori <leandro.lupori@gmail.com>.

llvm-svn: 325324
2018-02-16 09:29:41 +00:00
..
cmake [lldb] Set component when invoking add_llvm_install_targets 2017-12-13 01:14:27 +00:00
docs Compile the LLDB tests out-of-tree. 2018-01-30 18:29:16 +00:00
examples Fixed up to use a class for the commands, renamed the commands and added a way to just dump the compile unit full paths and optionally their support files with the new "dump-files"command. 2017-11-16 17:14:48 +00:00
include/lldb Make LLDB's clang module cache path customizable 2018-02-09 22:08:26 +00:00
lit [SymbolFilePDB] Add support for function symbols 2018-02-09 05:31:28 +00:00
lldb.xcodeproj Remove the pubnames support from the Xcode project. 2018-02-12 20:25:37 +00:00
lldb.xcworkspace Revert r275223, which committed the wrong thing. 2016-07-12 23:31:42 +00:00
packages/Python/lldbsuite [dosep] Run tests in a more parallel fashion 2018-02-16 09:21:11 +00:00
resources
scripts Remove an errant ^S 2018-02-07 20:09:13 +00:00
source [lldb][PPC64] Fixed vector and struct return value 2018-02-16 09:29:41 +00:00
test [cmake] Darwin: Copy in the system debugserver if needed 2018-02-13 23:05:46 +00:00
third_party/Python/module *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00
tools [cmake] Darwin: Copy in the system debugserver if needed 2018-02-13 23:05:46 +00:00
unittests [cmake] Darwin: Copy in the system debugserver if needed 2018-02-13 23:05:46 +00:00
utils *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00
www [docs] Update docs for cmake options LLDB_TEST_C_COMPILER and LLDB_TEST_CXX_COMPILER 2018-02-08 05:11:17 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format Updated .clang-format rules so bring LLDB in line with LLVM standards. 2016-09-06 17:19:00 +00:00
.gitignore [dotest] Remove crashinfo hook 2018-01-10 10:18:47 +00:00
CMakeLists.txt [cmake] Darwin: Copy in the system debugserver if needed 2018-02-13 23:05:46 +00:00
CODE_OWNERS.txt Remove Sean Callanan from the CODE_OWNERS, he won't have time 2017-11-01 01:38:42 +00:00
INSTALL.txt Changed builld-llvm.py to use .json files 2017-02-23 02:21:34 +00:00
LICENSE.TXT
use_lldb_suite_root.py *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00