From 7c79dfc4c5cac9e27fbb7bc0204d1a2c0b3f27e6 Mon Sep 17 00:00:00 2001 From: David Chisnall Date: Sat, 30 Nov 2019 14:22:35 +0000 Subject: [PATCH] Add missing files. --- Test/ObjCXXEHInterop_arc.m | 22 ++++++++++++++++++++++ Test/ObjCXXEHInterop_arc.mm | 18 ++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 Test/ObjCXXEHInterop_arc.m create mode 100644 Test/ObjCXXEHInterop_arc.mm diff --git a/Test/ObjCXXEHInterop_arc.m b/Test/ObjCXXEHInterop_arc.m new file mode 100644 index 0000000..8d4d275 --- /dev/null +++ b/Test/ObjCXXEHInterop_arc.m @@ -0,0 +1,22 @@ +#import "Test.h" + +#import "stdio.h" + +void poke_objcxx(void); + +void rethrow(id x) +{ + @throw x; +} + +int main(void) +{ + @try { + printf("Poking from minRepM\n"); + poke_objcxx(); + printf("Poked from minRepM\n"); + } @catch (Test *localException) { + printf("In NS_HANDLER block, %p\n", localException); + } +} + diff --git a/Test/ObjCXXEHInterop_arc.mm b/Test/ObjCXXEHInterop_arc.mm new file mode 100644 index 0000000..f5f47ad --- /dev/null +++ b/Test/ObjCXXEHInterop_arc.mm @@ -0,0 +1,18 @@ +#import "Test.h" +#import "stdio.h" + +extern "C" void rethrow(id); + + +extern "C" void poke_objcxx(void) +{ + @try { + printf("Raising MyException\n"); + Test *e = [Test new]; + @throw e; + } @catch (Test *localException) { + printf("Caught - re-raising\n"); + rethrow(localException); + } +} +