]> granicus.if.org Git - clang/commitdiff
Remove hacky temporary fix of r151585.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Thu, 15 Mar 2012 18:07:13 +0000 (18:07 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Thu, 15 Mar 2012 18:07:13 +0000 (18:07 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152818 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticASTKinds.td
lib/AST/ExprConstant.cpp

index bad80b668b1dc739cd397133d51a02e546e33379..9cfe5efae259a3a0aef54e5ee4cf6491b5d69ab5 100644 (file)
@@ -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<
index b8b98da25da470386402f761d5b6b7148c6b0c1d..6023a678e2aeecd0a61cea262ef6ae30048e81f3 100644 (file)
@@ -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 <cstring>
 #include <functional>
 
@@ -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<ASTContext&>(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<unsigned> 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
   //===--------------------------------------------------------------------===//