diff options
Diffstat (limited to 'test/SemaObjCXX/delay-parsing-func-tryblock.mm')
-rw-r--r-- | test/SemaObjCXX/delay-parsing-func-tryblock.mm | 21 |
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(...) { |