diff options
author | Vedant Kumar <vsk@apple.com> | 2018-08-20 17:17:38 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2018-08-20 17:17:38 +0000 |
commit | 651c2cdb4c04fcf3546a15d2fbb1a3296d840376 (patch) | |
tree | 4679487ff2613ac5f6682ba741263363f4102c97 /debuginfo-tests | |
parent | 49092d13c217112d2a9060fc3abdb72dd354f8f9 (diff) | |
download | bcm5719-llvm-651c2cdb4c04fcf3546a15d2fbb1a3296d840376.tar.gz bcm5719-llvm-651c2cdb4c04fcf3546a15d2fbb1a3296d840376.zip |
(Retry) Add a basic integration test for C++ smart pointers
Check that the debugger can pretty-print unique_ptr and shared_ptr when
passed as a function argument.
This was reverted in r339961 because of a bug in the version of lldb
installed on the public Green Dragon builders.
rdar://42314305
llvm-svn: 340189
Diffstat (limited to 'debuginfo-tests')
-rw-r--r-- | debuginfo-tests/smart-ptr-1.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/debuginfo-tests/smart-ptr-1.cpp b/debuginfo-tests/smart-ptr-1.cpp new file mode 100644 index 00000000000..5448e7dc2ee --- /dev/null +++ b/debuginfo-tests/smart-ptr-1.cpp @@ -0,0 +1,41 @@ +// RUN: %clangxx -std=c++14 %target_itanium_abi_host_triple -g %s -o %t.O0.out +// RUN: %test_debuginfo %s %t.O0.out +// UNSUPPORTED: apple-lldb-pre-1000 +#include <memory> + +static volatile int sink; + +static void use_shared_ptr(std::shared_ptr<int> ptr) { + // DEBUGGER: break 10 + sink = *ptr; +} + +static void use_unique_ptr(std::unique_ptr<int> ptr) { + // DEBUGGER: break 15 + sink = *ptr; +} + +int main() { + auto sp_1 = std::make_shared<int>(1234); + use_shared_ptr(sp_1); + + auto up_1 = std::make_unique<int>(5678); + use_unique_ptr(std::move(up_1)); + + return 0; +} + +// DEBUGGER: r + +// (at line 10) +// DEBUGGER: p ptr +// CHECK: shared_ptr<int> +// CHECK-SAME: 1234 + +// DEBUGGER: c + +// (at line 16) +// DEBUGGER: p ptr +// CHECK: unique_ptr<int> +// TODO: lldb's unique_ptr data formatter doesn't pretty-print its wrapped +// object. |