/// initializer, which can be emitted at compile-time.
bool isConstantInitializer(ASTContext &Ctx) const;
- /// @brief Determines whether this expression (or any of its
- /// subexpressions) has side effects.
- bool hasSideEffects(ASTContext &Ctx) const;
-
/// EvalResult is a struct with detailed info about an evaluated expression.
struct EvalResult {
/// Val - This is the scalar value the expression can be folded to.
return isEvaluatable(Ctx);
}
-bool Expr::hasSideEffects(ASTContext &Ctx) const {
- EvalResult Result;
- Evaluate(Result, Ctx);
- return Result.HasSideEffects;
-}
-
/// isIntegerConstantExpr - this recursive routine will test if an expression is
/// an integer constant expression. Note: With the introduction of VLA's in
/// C99 the result of the sizeof operator is no longer always a constant
<< InitRange;
SemaRef->Diag(ExistingInit->getSourceRange().getBegin(),
diag::note_previous_initializer)
- << ExistingInit->hasSideEffects(SemaRef->Context)
+ << /*FIXME:has side effects=*/0
<< ExistingInit->getSourceRange();
}
<< expr->getSourceRange();
SemaRef->Diag(PrevInit->getSourceRange().getBegin(),
diag::note_previous_initializer)
- << (int)PrevInit->hasSideEffects(SemaRef->Context)
+ << /*FIXME:has side effects=*/0
<< PrevInit->getSourceRange();
}