本文整理汇总了C++中BinaryOperator::isCompoundAssignmentOp方法的典型用法代码示例。如果您正苦于以下问题:C++ BinaryOperator::isCompoundAssignmentOp方法的具体用法?C++ BinaryOperator::isCompoundAssignmentOp怎么用?C++ BinaryOperator::isCompoundAssignmentOp使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BinaryOperator
的用法示例。
在下文中一共展示了BinaryOperator::isCompoundAssignmentOp方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleSubExpr
void AssignExprStatementVisitor::handleSubExpr(Expr *E)
{
if (!E)
return;
BinaryOperator *BinOp = dyn_cast<BinaryOperator>(E->IgnoreParenCasts());
if (!BinOp) {
TraverseStmt(E);
return;
}
if (!BinOp->isAssignmentOp() && !BinOp->isCompoundAssignmentOp()) {
TraverseStmt(E);
return;
}
TransAssert(std::find(ConsumerInstance->ValidAssignExprs.begin(),
ConsumerInstance->ValidAssignExprs.end(), BinOp)
== ConsumerInstance->ValidAssignExprs.end());
ConsumerInstance->ValidAssignExprs.push_back(BinOp);
ConsumerInstance->ValidInstanceNum++;
if (ConsumerInstance->ValidInstanceNum !=
ConsumerInstance->TransformationCounter)
return;
ConsumerInstance->TheFuncDecl = CurrentFuncDecl;
ConsumerInstance->TheStmt = CurrentStmt;
ConsumerInstance->TheAssignExpr = BinOp;
ConsumerInstance->NeedParen = NeedParen;
}
示例2: HandleBinaryOperator
void FakeDirectiveHandler::HandleBinaryOperator(DeclRefExpr * Original,
Expr * Var,
Expr * Next,
vector<LocalStmtPair> WritePairs,
bool ActualVar,
string Struct) {
BinaryOperator * BO = cast<BinaryOperator>(Next);
CompilerInstance &CI = FullDirectives->GetCI(Original->getLocStart());
// a = b;
if (BO->isAssignmentOp()) {
// Var = b;
if (IsWrite(BO, Var, CI)) {
InsertAccess(Var, Original, true, WritePairs, ActualVar, Struct);
// Var += b;
if (BO->isCompoundAssignmentOp()) {
InsertAccess(Var, Original, false, WritePairs, ActualVar, Struct);
}
// a = Var;
} else {
InsertAccess(Var, Original, false, WritePairs, ActualVar, Struct);
}
ActualVar = false;
// a + b;
} else {
InsertAccess(Var, Original, false, WritePairs, ActualVar, Struct);
ActualVar = false;
}
if (IsPointerType(Var) && IsPointerType(BO)) {
WalkUpExpr(Original, BO, WritePairs, ActualVar, Struct);
}
}