From: Argyrios Kyrtzidis Date: Thu, 15 Mar 2012 18:07:13 +0000 (+0000) Subject: Remove hacky temporary fix of r151585. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=649dfbc389671d0c852ead5953da630d675a5d43;p=clang Remove hacky temporary fix of r151585. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152818 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/DiagnosticASTKinds.td b/include/clang/Basic/DiagnosticASTKinds.td index bad80b668b..9cfe5efae2 100644 --- a/include/clang/Basic/DiagnosticASTKinds.td +++ b/include/clang/Basic/DiagnosticASTKinds.td @@ -107,11 +107,6 @@ def note_constexpr_calls_suppressed : Note< "see all)">; def note_constexpr_call_here : Note<"in call to '%0'">; -// FIXME: See EvalInfo::IntExprEvaluatorDepth. -def err_intexpr_depth_limit_exceeded : Error< - "integer expression evaluation exceeded maximum sub-expression depth">, - DefaultFatal; // avoid emitting it multiple times for the same parent expr. - // inline asm related. let CategoryName = "Inline Assembly Issue" in { def err_asm_invalid_escape : Error< diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp index b8b98da25d..6023a678e2 100644 --- a/lib/AST/ExprConstant.cpp +++ b/lib/AST/ExprConstant.cpp @@ -44,7 +44,6 @@ #include "clang/Basic/Builtins.h" #include "clang/Basic/TargetInfo.h" #include "llvm/ADT/SmallString.h" -#include "llvm/Support/SaveAndRestore.h" #include #include @@ -388,18 +387,12 @@ namespace { /// are suppressed. bool CheckingPotentialConstantExpression; - /// \brief Stack depth of IntExprEvaluator. - /// We check this against a maximum value to avoid stack overflow, see - /// test case in test/Sema/many-logical-ops.c. - // FIXME: This is a hack; handle properly unlimited logical ops. - unsigned IntExprEvaluatorDepth; - EvalInfo(const ASTContext &C, Expr::EvalStatus &S) : Ctx(const_cast(C)), EvalStatus(S), CurrentCall(0), CallStackDepth(0), NextCallIndex(1), BottomFrame(*this, SourceLocation(), 0, 0, 0), EvaluatingDecl(0), EvaluatingDeclValue(0), HasActiveDiagnostic(false), - CheckingPotentialConstantExpression(false), IntExprEvaluatorDepth(0) {} + CheckingPotentialConstantExpression(false) {} const APValue *getOpaqueValue(const OpaqueValueExpr *e) const { MapTy::const_iterator i = OpaqueValues.find(e); @@ -4008,20 +4001,6 @@ public: bool ZeroInitialization(const Expr *E) { return Success(0, E); } - // FIXME: See EvalInfo::IntExprEvaluatorDepth. - bool Visit(const Expr *E) { - SaveAndRestore Depth(Info.IntExprEvaluatorDepth, - Info.IntExprEvaluatorDepth+1); - const unsigned MaxDepth = 512; - if (Depth.get() > MaxDepth) { - Info.Ctx.getDiagnostics().Report(E->getExprLoc(), - diag::err_intexpr_depth_limit_exceeded); - return false; - } - - return ExprEvaluatorBaseTy::Visit(E); - } - //===--------------------------------------------------------------------===// // Visitor Methods //===--------------------------------------------------------------------===//