]> granicus.if.org Git - clang/commitdiff
Remove a FIXME from RewriteObjC::RewriteObjCSynchronizedStmt().
authorSteve Naroff <snaroff@apple.com>
Wed, 16 Jul 2008 19:47:39 +0000 (19:47 +0000)
committerSteve Naroff <snaroff@apple.com>
Wed, 16 Jul 2008 19:47:39 +0000 (19:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53696 91177308-0d34-0410-b5e6-96231b3b80d8

Driver/RewriteObjC.cpp

index 48cb9df07406eb7cef8e11f30b4d4b95a1d2f9d2..9d093bc2ab574a0d8596d1a63e780ac6175aac49 100644 (file)
@@ -1294,8 +1294,11 @@ Stmt *RewriteObjC::RewriteObjCSynchronizedStmt(ObjCAtSynchronizedStmt *S) {
   buf = "}\nelse {\n";
   buf += "  _rethrow = objc_exception_extract(&_stack);\n";
   buf += "  if (!_rethrow) objc_exception_try_exit(&_stack);\n";
-  // FIXME: This must be objc_sync_exit(syncExpr);
-  buf += "  objc_sync_exit();\n";
+  buf += "  objc_sync_exit(";
+  std::ostringstream syncExprBuf;
+  S->getSynchExpr()->printPretty(syncExprBuf);
+  buf += syncExprBuf.str();
+  buf += ");\n";
   buf += "  if (_rethrow) objc_exception_throw(_rethrow);\n";
   buf += "}\n";
   buf += "}";