diff options
author | Adrian Prantl <aprantl@apple.com> | 2019-05-16 19:21:31 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2019-05-16 19:21:31 +0000 |
commit | 431dd943a1aa747efd07af44ea83398254cf6681 (patch) | |
tree | d5d22415f0f55eaf727e26a7c2f2be5cc0082c91 /lldb/packages/Python/lldbsuite/test | |
parent | f637bb6ebdd93b21200e644f1dc30691957844da (diff) | |
download | bcm5719-llvm-431dd943a1aa747efd07af44ea83398254cf6681.tar.gz bcm5719-llvm-431dd943a1aa747efd07af44ea83398254cf6681.zip |
Make sure GetObjectDescription falls back to the Objective-C runtime.
This fixes an unintended regression introduced by
https://reviews.llvm.org/D61451 by making sure the Objective-C runtime
is also tried when the "correct" language runtime failed to return an
object description.
rdar://problem/50791055
Differential Revision: https://reviews.llvm.org/D62015
llvm-svn: 360929
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
3 files changed, 42 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objcxx/cxx-bridged-po/Makefile b/lldb/packages/Python/lldbsuite/test/lang/objcxx/cxx-bridged-po/Makefile new file mode 100644 index 00000000000..c258c4de49e --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/lang/objcxx/cxx-bridged-po/Makefile @@ -0,0 +1,6 @@ +LEVEL = ../../../make + +OBJCXX_SOURCES := main.mm +LDFLAGS = $(CFLAGS) -lobjc -framework CoreFoundation + +include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/lang/objcxx/cxx-bridged-po/TestObjCXXBridgedPO.py b/lldb/packages/Python/lldbsuite/test/lang/objcxx/cxx-bridged-po/TestObjCXXBridgedPO.py new file mode 100644 index 00000000000..ecaf1e1ecf5 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/lang/objcxx/cxx-bridged-po/TestObjCXXBridgedPO.py @@ -0,0 +1,24 @@ +import lldb +from lldbsuite.test.lldbtest import * +from lldbsuite.test.decorators import * +import lldbsuite.test.lldbutil as lldbutil + +class TestObjCXXBridgedPO(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + def setUp(self): + TestBase.setUp(self) + + @skipUnlessDarwin + def test_bridged_type_po(self): + self.build() + lldbutil.run_to_source_breakpoint( + self, 'break here', lldb.SBFileSpec('main.mm')) + self.expect('po num', + "did not get the Objective-C object description", + substrs=['CFNumber', '0x', '42']) + pointer_val = str(self.frame().FindVariable('num').GetValue()) + self.expect('po '+pointer_val, + "did not get the Objective-C object description", + substrs=['CFNumber', '0x', '42']) diff --git a/lldb/packages/Python/lldbsuite/test/lang/objcxx/cxx-bridged-po/main.mm b/lldb/packages/Python/lldbsuite/test/lang/objcxx/cxx-bridged-po/main.mm new file mode 100644 index 00000000000..e376456033f --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/lang/objcxx/cxx-bridged-po/main.mm @@ -0,0 +1,12 @@ +#include <CoreFoundation/CoreFoundation.h> + +void stop() {} + +int main(int argc, char **argv) +{ + int value = 42; + CFNumberRef num; + num = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &value); + stop(); // break here + return 0; +} |