]> granicus.if.org Git - clang/commitdiff
Update Expr::{getIntegerConstantExprValue, isIntegerConstantExpr} to
authorDaniel Dunbar <daniel@zuster.org>
Fri, 15 Aug 2008 23:29:09 +0000 (23:29 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Fri, 15 Aug 2008 23:29:09 +0000 (23:29 +0000)
  use default APSInt constructor instead of embedding arbitrary
  constant.

Update OverloadExpr::getNumArgs to use getIntegerConstantExprValue.

Update OverloadExpr::getExpr to be const.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54828 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/Expr.h

index 9b6ce2fc8f5892546c2ea939a6be7dff7f4c6690..bc99edf17479179695ab3c2c6043ba460e0ad012 100644 (file)
@@ -97,7 +97,7 @@ public:
   /// constant expression. The expression must be a valid integer
   /// constant expression as determined by isIntegerConstantExpr.
   llvm::APSInt getIntegerConstantExprValue(ASTContext &Ctx) const {
-    llvm::APSInt X(32);
+    llvm::APSInt X;
     bool success = isIntegerConstantExpr(X, Ctx);
     success = success;
     assert(success && "Illegal argument to getIntegerConstantExpr");
@@ -112,7 +112,7 @@ public:
                              SourceLocation *Loc = 0,
                              bool isEvaluated = true) const;
   bool isIntegerConstantExpr(ASTContext &Ctx, SourceLocation *Loc = 0) const {
-    llvm::APSInt X(32);
+    llvm::APSInt X;
     return isIntegerConstantExpr(X, Ctx, Loc);
   }
   /// isConstantExpr - Return true if this expression is a valid constant expr.
@@ -1320,9 +1320,7 @@ public:
   /// getNumArgs - Return the number of arguments to pass to the candidate
   /// functions.
   unsigned getNumArgs(ASTContext &Ctx) const {
-    llvm::APSInt constEval(32);
-    (void) cast<Expr>(SubExprs[0])->isIntegerConstantExpr(constEval, Ctx);
-    return constEval.getZExtValue();
+    return getExpr(0)->getIntegerConstantExprValue(Ctx).getZExtValue();
   }
 
   /// getNumSubExprs - Return the size of the SubExprs array.  This includes the
@@ -1331,7 +1329,7 @@ public:
   unsigned getNumSubExprs() const { return NumExprs; }
   
   /// getExpr - Return the Expr at the specified index.
-  Expr *getExpr(unsigned Index) {
+  Expr *getExpr(unsigned Index) const {
     assert((Index < NumExprs) && "Arg access out of range!");
     return cast<Expr>(SubExprs[Index]);
   }