reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
 1792   buf = "/* @try scope begin */ { struct _objc_exception_data {\n";
 1793   buf += "int buf[18/*32-bit i386*/];\n";
 1794   buf += "char *pointers[4];} _stack;\n";
 1795   buf += "id volatile _rethrow = 0;\n";
 1796   buf += "objc_exception_try_enter(&_stack);\n";
 1797   buf += "if (!_setjmp(_stack.buf)) /* @try block continue */\n";
 1799   ReplaceText(startLoc, 4, buf);
 1809     buf = " /* @catch begin */ else {\n";
 1810     buf += " id _caught = objc_exception_extract(&_stack);\n";
 1811     buf += " objc_exception_try_enter (&_stack);\n";
 1812     buf += " if (_setjmp(_stack.buf))\n";
 1813     buf += "   _rethrow = objc_exception_extract(&_stack);\n";
 1814     buf += " else { /* @catch continue */";
 1816     InsertText(startLoc, buf);
 1818     buf = "}\nelse {\n";
 1819     buf += "  _rethrow = objc_exception_extract(&_stack);\n";
 1820     buf += "}";
 1821     ReplaceText(lastCurlyLoc, 1, buf);
 1829       buf = "if ("; // we are generating code for the first catch clause
 1831       buf = "else if (";
 1848       buf += "1) { id _tmp = _caught;";
 1849       Rewrite.ReplaceText(startLoc, bodyBuf-startBuf+1, buf);
 1853         buf += "1) { ";
 1854         ReplaceText(startLoc, lParenLoc-startBuf+1, buf);
 1860           buf += "objc_exception_match((struct objc_class *)objc_getClass(\"";
 1861           buf += IDecl->getNameAsString();
 1862           buf += "\"), (struct objc_object *)_caught)) { ";
 1863           ReplaceText(startLoc, lParenLoc-startBuf+1, buf);
 1890     buf = "} /* last catch end */\n";
 1891     buf += "else {\n";
 1892     buf += " _rethrow = _caught;\n";
 1893     buf += " objc_exception_try_exit(&_stack);\n";
 1894     buf += "} } /* @catch end */\n";
 1896       buf += "}\n";
 1897     InsertText(bodyLoc, buf);
 1928     buf = "{ /* implicit finally clause */\n";
 1929     buf += " if (!_rethrow) objc_exception_try_exit(&_stack);\n";
 1930     buf += " if (_rethrow) objc_exception_throw(_rethrow);\n";
 1931     buf += "}";
 1932     ReplaceText(lastCurlyLoc, 1, buf);