aboutsummaryrefslogtreecommitdiff
path: root/test/SemaObjCXX/delay-parsing-func-tryblock.mm
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaObjCXX/delay-parsing-func-tryblock.mm')
-rw-r--r--test/SemaObjCXX/delay-parsing-func-tryblock.mm21
1 files changed, 20 insertions, 1 deletions
diff --git a/test/SemaObjCXX/delay-parsing-func-tryblock.mm b/test/SemaObjCXX/delay-parsing-func-tryblock.mm
index d0acc3f9b1..8cf615ec32 100644
--- a/test/SemaObjCXX/delay-parsing-func-tryblock.mm
+++ b/test/SemaObjCXX/delay-parsing-func-tryblock.mm
@@ -8,7 +8,9 @@
struct BadReturn {
BadReturn(MyClass * myObject);
int bar(MyClass * myObject);
+ void MemFunc(MyClass * myObject);
int i;
+ MyClass *CObj;
};
@implementation MyClass
@@ -21,12 +23,29 @@ int BadReturn::bar(MyClass * myObject) {
return 0;
}
-BadReturn::BadReturn(MyClass * myObject) try {
+BadReturn::BadReturn(MyClass * myObject) try : CObj(myObject) {
} catch(...) {
try {
[myObject privateMethod];
[myObject privateMethod1];
getMe = bar(myObject);
+ [CObj privateMethod1];
+ } catch(int ei) {
+ i = ei;
+ } catch(...) {
+ {
+ i = 0;
+ }
+ }
+}
+
+void BadReturn::MemFunc(MyClass * myObject) try {
+} catch(...) {
+ try {
+ [myObject privateMethod];
+ [myObject privateMethod1];
+ getMe = bar(myObject);
+ [CObj privateMethod1];
} catch(int ei) {
i = ei;
} catch(...) {