diff options
Diffstat (limited to 'clang/lib/AST')
| -rw-r--r-- | clang/lib/AST/CFG.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/clang/lib/AST/CFG.cpp b/clang/lib/AST/CFG.cpp index e601d4ff69e..f5b604554d8 100644 --- a/clang/lib/AST/CFG.cpp +++ b/clang/lib/AST/CFG.cpp @@ -140,9 +140,7 @@ public: // a 'return'. CFGBlock* VisitObjCAtThrowStmt(ObjCAtThrowStmt* S); - CFGBlock* VisitObjCAtSynchronizedStmt(ObjCAtSynchronizedStmt* S){ - return NYS(); - } + CFGBlock* VisitObjCAtSynchronizedStmt(ObjCAtSynchronizedStmt* S); // Blocks. CFGBlock* VisitBlockExpr(BlockExpr* E) { return NYS(); } @@ -935,6 +933,16 @@ CFGBlock* CFGBuilder::VisitObjCForCollectionStmt(ObjCForCollectionStmt* S) { return addStmt(S->getCollection()); } +CFGBlock* CFGBuilder::VisitObjCAtSynchronizedStmt(ObjCAtSynchronizedStmt* S) { + // FIXME: Add locking 'primitives' to CFG for @synchronized. + + // Inline the body. + Visit(S->getSynchBody()); + + // Inline the sync expression. + return Visit(S->getSynchExpr()); +} + CFGBlock* CFGBuilder::VisitObjCAtTryStmt(ObjCAtTryStmt* S) { return NYS(); } |

