return VisitBreakStmt(cast<BreakStmt>(S));
case Stmt::CallExprClass:
+ case Stmt::CXXOperatorCallExprClass:
return VisitCallExpr(cast<CallExpr>(S), asc);
case Stmt::CaseStmtClass:
case Stmt::CXXExprWithTemporariesClass: {
// FIXME: Handle temporaries. For now, just visit the subexpression
// so we don't artificially create extra blocks.
- return Visit(cast<CXXExprWithTemporaries>(S)->getSubExpr());
+ return Visit(cast<CXXExprWithTemporaries>(S)->getSubExpr(), asc);
}
case Stmt::CXXMemberCallExprClass:
*p = 0xDEADBEEF; // expected-warning{{null pointer}}
}
+// <rdar://problem/8375510> - CFGBuilder should handle temporaries.
+struct R8375510 {
+ R8375510();
+ ~R8375510();
+ R8375510 operator++(int);
+};
+
+int r8375510(R8375510 x, R8375510 y) {
+ for (; ; x++) { }
+}
+