Constify more uses of ASTContext&. No functional change.
llvm-svn: 188991
This commit is contained in:
parent
2ddeeed096
commit
a31a882f87
|
@ -482,21 +482,22 @@ public:
|
|||
///
|
||||
/// Note: This does not perform the implicit conversions required by C++11
|
||||
/// [expr.const]p5.
|
||||
bool isIntegerConstantExpr(llvm::APSInt &Result, ASTContext &Ctx,
|
||||
bool isIntegerConstantExpr(llvm::APSInt &Result, const ASTContext &Ctx,
|
||||
SourceLocation *Loc = 0,
|
||||
bool isEvaluated = true) const;
|
||||
bool isIntegerConstantExpr(ASTContext &Ctx, SourceLocation *Loc = 0) const;
|
||||
bool isIntegerConstantExpr(const ASTContext &Ctx,
|
||||
SourceLocation *Loc = 0) const;
|
||||
|
||||
/// isCXX98IntegralConstantExpr - Return true if this expression is an
|
||||
/// integral constant expression in C++98. Can only be used in C++.
|
||||
bool isCXX98IntegralConstantExpr(ASTContext &Ctx) const;
|
||||
bool isCXX98IntegralConstantExpr(const ASTContext &Ctx) const;
|
||||
|
||||
/// isCXX11ConstantExpr - Return true if this expression is a constant
|
||||
/// expression in C++11. Can only be used in C++.
|
||||
///
|
||||
/// Note: This does not perform the implicit conversions required by C++11
|
||||
/// [expr.const]p5.
|
||||
bool isCXX11ConstantExpr(ASTContext &Ctx, APValue *Result = 0,
|
||||
bool isCXX11ConstantExpr(const ASTContext &Ctx, APValue *Result = 0,
|
||||
SourceLocation *Loc = 0) const;
|
||||
|
||||
/// isPotentialConstantExpr - Return true if this function's definition
|
||||
|
|
|
@ -240,13 +240,13 @@ class CXXStaticCastExpr : public CXXNamedCastExpr {
|
|||
: CXXNamedCastExpr(CXXStaticCastExprClass, Empty, PathSize) { }
|
||||
|
||||
public:
|
||||
static CXXStaticCastExpr *Create(ASTContext &Context, QualType T,
|
||||
static CXXStaticCastExpr *Create(const ASTContext &Context, QualType T,
|
||||
ExprValueKind VK, CastKind K, Expr *Op,
|
||||
const CXXCastPath *Path,
|
||||
TypeSourceInfo *Written, SourceLocation L,
|
||||
SourceLocation RParenLoc,
|
||||
SourceRange AngleBrackets);
|
||||
static CXXStaticCastExpr *CreateEmpty(ASTContext &Context,
|
||||
static CXXStaticCastExpr *CreateEmpty(const ASTContext &Context,
|
||||
unsigned PathSize);
|
||||
|
||||
static bool classof(const Stmt *T) {
|
||||
|
@ -271,14 +271,14 @@ class CXXDynamicCastExpr : public CXXNamedCastExpr {
|
|||
: CXXNamedCastExpr(CXXDynamicCastExprClass, Empty, pathSize) { }
|
||||
|
||||
public:
|
||||
static CXXDynamicCastExpr *Create(ASTContext &Context, QualType T,
|
||||
static CXXDynamicCastExpr *Create(const ASTContext &Context, QualType T,
|
||||
ExprValueKind VK, CastKind Kind, Expr *Op,
|
||||
const CXXCastPath *Path,
|
||||
TypeSourceInfo *Written, SourceLocation L,
|
||||
SourceLocation RParenLoc,
|
||||
SourceRange AngleBrackets);
|
||||
|
||||
static CXXDynamicCastExpr *CreateEmpty(ASTContext &Context,
|
||||
static CXXDynamicCastExpr *CreateEmpty(const ASTContext &Context,
|
||||
unsigned pathSize);
|
||||
|
||||
bool isAlwaysNull() const;
|
||||
|
@ -309,13 +309,13 @@ class CXXReinterpretCastExpr : public CXXNamedCastExpr {
|
|||
: CXXNamedCastExpr(CXXReinterpretCastExprClass, Empty, pathSize) { }
|
||||
|
||||
public:
|
||||
static CXXReinterpretCastExpr *Create(ASTContext &Context, QualType T,
|
||||
static CXXReinterpretCastExpr *Create(const ASTContext &Context, QualType T,
|
||||
ExprValueKind VK, CastKind Kind,
|
||||
Expr *Op, const CXXCastPath *Path,
|
||||
TypeSourceInfo *WrittenTy, SourceLocation L,
|
||||
SourceLocation RParenLoc,
|
||||
SourceRange AngleBrackets);
|
||||
static CXXReinterpretCastExpr *CreateEmpty(ASTContext &Context,
|
||||
static CXXReinterpretCastExpr *CreateEmpty(const ASTContext &Context,
|
||||
unsigned pathSize);
|
||||
|
||||
static bool classof(const Stmt *T) {
|
||||
|
@ -341,12 +341,12 @@ class CXXConstCastExpr : public CXXNamedCastExpr {
|
|||
: CXXNamedCastExpr(CXXConstCastExprClass, Empty, 0) { }
|
||||
|
||||
public:
|
||||
static CXXConstCastExpr *Create(ASTContext &Context, QualType T,
|
||||
static CXXConstCastExpr *Create(const ASTContext &Context, QualType T,
|
||||
ExprValueKind VK, Expr *Op,
|
||||
TypeSourceInfo *WrittenTy, SourceLocation L,
|
||||
SourceLocation RParenLoc,
|
||||
SourceRange AngleBrackets);
|
||||
static CXXConstCastExpr *CreateEmpty(ASTContext &Context);
|
||||
static CXXConstCastExpr *CreateEmpty(const ASTContext &Context);
|
||||
|
||||
static bool classof(const Stmt *T) {
|
||||
return T->getStmtClass() == CXXConstCastExprClass;
|
||||
|
@ -367,12 +367,12 @@ class UserDefinedLiteral : public CallExpr {
|
|||
SourceLocation UDSuffixLoc;
|
||||
|
||||
public:
|
||||
UserDefinedLiteral(ASTContext &C, Expr *Fn, ArrayRef<Expr*> Args,
|
||||
UserDefinedLiteral(const ASTContext &C, Expr *Fn, ArrayRef<Expr*> Args,
|
||||
QualType T, ExprValueKind VK, SourceLocation LitEndLoc,
|
||||
SourceLocation SuffixLoc)
|
||||
: CallExpr(C, UserDefinedLiteralClass, Fn, 0, Args, T, VK, LitEndLoc),
|
||||
UDSuffixLoc(SuffixLoc) {}
|
||||
explicit UserDefinedLiteral(ASTContext &C, EmptyShell Empty)
|
||||
explicit UserDefinedLiteral(const ASTContext &C, EmptyShell Empty)
|
||||
: CallExpr(C, UserDefinedLiteralClass, Empty) {}
|
||||
|
||||
/// The kind of literal operator which is invoked.
|
||||
|
@ -884,17 +884,15 @@ public:
|
|||
|
||||
// \p Param is the parameter whose default argument is used by this
|
||||
// expression.
|
||||
static CXXDefaultArgExpr *Create(ASTContext &C, SourceLocation Loc,
|
||||
static CXXDefaultArgExpr *Create(const ASTContext &C, SourceLocation Loc,
|
||||
ParmVarDecl *Param) {
|
||||
return new (C) CXXDefaultArgExpr(CXXDefaultArgExprClass, Loc, Param);
|
||||
}
|
||||
|
||||
// \p Param is the parameter whose default argument is used by this
|
||||
// expression, and \p SubExpr is the expression that will actually be used.
|
||||
static CXXDefaultArgExpr *Create(ASTContext &C,
|
||||
SourceLocation Loc,
|
||||
ParmVarDecl *Param,
|
||||
Expr *SubExpr);
|
||||
static CXXDefaultArgExpr *Create(const ASTContext &C, SourceLocation Loc,
|
||||
ParmVarDecl *Param, Expr *SubExpr);
|
||||
|
||||
// Retrieve the parameter that the argument was created from.
|
||||
const ParmVarDecl *getParam() const { return Param.getPointer(); }
|
||||
|
@ -949,7 +947,7 @@ class CXXDefaultInitExpr : public Expr {
|
|||
/// \brief The location where the default initializer expression was used.
|
||||
SourceLocation Loc;
|
||||
|
||||
CXXDefaultInitExpr(ASTContext &C, SourceLocation Loc, FieldDecl *Field,
|
||||
CXXDefaultInitExpr(const ASTContext &C, SourceLocation Loc, FieldDecl *Field,
|
||||
QualType T);
|
||||
|
||||
CXXDefaultInitExpr(EmptyShell Empty) : Expr(CXXDefaultInitExprClass, Empty) {}
|
||||
|
@ -957,7 +955,7 @@ class CXXDefaultInitExpr : public Expr {
|
|||
public:
|
||||
/// \p Field is the non-static data member whose default initializer is used
|
||||
/// by this expression.
|
||||
static CXXDefaultInitExpr *Create(ASTContext &C, SourceLocation Loc,
|
||||
static CXXDefaultInitExpr *Create(const ASTContext &C, SourceLocation Loc,
|
||||
FieldDecl *Field) {
|
||||
return new (C) CXXDefaultInitExpr(C, Loc, Field, Field->getType());
|
||||
}
|
||||
|
@ -993,7 +991,7 @@ class CXXTemporary {
|
|||
: Destructor(destructor) { }
|
||||
|
||||
public:
|
||||
static CXXTemporary *Create(ASTContext &C,
|
||||
static CXXTemporary *Create(const ASTContext &C,
|
||||
const CXXDestructorDecl *Destructor);
|
||||
|
||||
const CXXDestructorDecl *getDestructor() const { return Destructor; }
|
||||
|
@ -1033,7 +1031,7 @@ public:
|
|||
CXXBindTemporaryExpr(EmptyShell Empty)
|
||||
: Expr(CXXBindTemporaryExprClass, Empty), Temp(0), SubExpr(0) {}
|
||||
|
||||
static CXXBindTemporaryExpr *Create(ASTContext &C, CXXTemporary *Temp,
|
||||
static CXXBindTemporaryExpr *Create(const ASTContext &C, CXXTemporary *Temp,
|
||||
Expr* SubExpr);
|
||||
|
||||
CXXTemporary *getTemporary() { return Temp; }
|
||||
|
@ -1082,7 +1080,7 @@ private:
|
|||
Stmt **Args;
|
||||
|
||||
protected:
|
||||
CXXConstructExpr(ASTContext &C, StmtClass SC, QualType T,
|
||||
CXXConstructExpr(const ASTContext &C, StmtClass SC, QualType T,
|
||||
SourceLocation Loc,
|
||||
CXXConstructorDecl *d, bool elidable,
|
||||
ArrayRef<Expr *> Args,
|
||||
|
@ -1108,7 +1106,7 @@ public:
|
|||
ConstructKind(0), Args(0)
|
||||
{ }
|
||||
|
||||
static CXXConstructExpr *Create(ASTContext &C, QualType T,
|
||||
static CXXConstructExpr *Create(const ASTContext &C, QualType T,
|
||||
SourceLocation Loc,
|
||||
CXXConstructorDecl *D, bool Elidable,
|
||||
ArrayRef<Expr *> Args,
|
||||
|
@ -1221,14 +1219,14 @@ class CXXFunctionalCastExpr : public ExplicitCastExpr {
|
|||
: ExplicitCastExpr(CXXFunctionalCastExprClass, Shell, PathSize) { }
|
||||
|
||||
public:
|
||||
static CXXFunctionalCastExpr *Create(ASTContext &Context, QualType T,
|
||||
static CXXFunctionalCastExpr *Create(const ASTContext &Context, QualType T,
|
||||
ExprValueKind VK,
|
||||
TypeSourceInfo *Written,
|
||||
CastKind Kind, Expr *Op,
|
||||
const CXXCastPath *Path,
|
||||
SourceLocation LPLoc,
|
||||
SourceLocation RPLoc);
|
||||
static CXXFunctionalCastExpr *CreateEmpty(ASTContext &Context,
|
||||
static CXXFunctionalCastExpr *CreateEmpty(const ASTContext &Context,
|
||||
unsigned PathSize);
|
||||
|
||||
SourceLocation getLParenLoc() const { return LParenLoc; }
|
||||
|
@ -1263,7 +1261,7 @@ class CXXTemporaryObjectExpr : public CXXConstructExpr {
|
|||
TypeSourceInfo *Type;
|
||||
|
||||
public:
|
||||
CXXTemporaryObjectExpr(ASTContext &C, CXXConstructorDecl *Cons,
|
||||
CXXTemporaryObjectExpr(const ASTContext &C, CXXConstructorDecl *Cons,
|
||||
TypeSourceInfo *Type,
|
||||
ArrayRef<Expr *> Args,
|
||||
SourceRange parenRange,
|
||||
|
@ -1497,7 +1495,7 @@ private:
|
|||
|
||||
public:
|
||||
/// \brief Construct a new lambda expression.
|
||||
static LambdaExpr *Create(ASTContext &C,
|
||||
static LambdaExpr *Create(const ASTContext &C,
|
||||
CXXRecordDecl *Class,
|
||||
SourceRange IntroducerRange,
|
||||
LambdaCaptureDefault CaptureDefault,
|
||||
|
@ -1513,7 +1511,8 @@ public:
|
|||
|
||||
/// \brief Construct a new lambda expression that will be deserialized from
|
||||
/// an external source.
|
||||
static LambdaExpr *CreateDeserialized(ASTContext &C, unsigned NumCaptures,
|
||||
static LambdaExpr *CreateDeserialized(const ASTContext &C,
|
||||
unsigned NumCaptures,
|
||||
unsigned NumArrayIndexVars);
|
||||
|
||||
/// \brief Determine the default capture kind for this lambda.
|
||||
|
@ -1729,7 +1728,7 @@ public:
|
|||
ListInit ///< New-expression has a C++11 list-initializer.
|
||||
};
|
||||
|
||||
CXXNewExpr(ASTContext &C, bool globalNew, FunctionDecl *operatorNew,
|
||||
CXXNewExpr(const ASTContext &C, bool globalNew, FunctionDecl *operatorNew,
|
||||
FunctionDecl *operatorDelete, bool usualArrayDeleteWantsSize,
|
||||
ArrayRef<Expr*> placementArgs,
|
||||
SourceRange typeIdParens, Expr *arraySize,
|
||||
|
@ -1739,8 +1738,8 @@ public:
|
|||
explicit CXXNewExpr(EmptyShell Shell)
|
||||
: Expr(CXXNewExprClass, Shell), SubExprs(0) { }
|
||||
|
||||
void AllocateArgsArray(ASTContext &C, bool isArray, unsigned numPlaceArgs,
|
||||
bool hasInitializer);
|
||||
void AllocateArgsArray(const ASTContext &C, bool isArray,
|
||||
unsigned numPlaceArgs, bool hasInitializer);
|
||||
|
||||
QualType getAllocatedType() const {
|
||||
assert(getType()->isPointerType());
|
||||
|
@ -1762,7 +1761,7 @@ public:
|
|||
/// has a non-throwing exception-specification. The '03 rule is
|
||||
/// identical except that the definition of a non-throwing
|
||||
/// exception specification is just "is it throw()?".
|
||||
bool shouldNullCheckAllocation(ASTContext &Ctx) const;
|
||||
bool shouldNullCheckAllocation(const ASTContext &Ctx) const;
|
||||
|
||||
FunctionDecl *getOperatorNew() const { return OperatorNew; }
|
||||
void setOperatorNew(FunctionDecl *D) { OperatorNew = D; }
|
||||
|
@ -2027,7 +2026,7 @@ class CXXPseudoDestructorExpr : public Expr {
|
|||
friend class ASTStmtReader;
|
||||
|
||||
public:
|
||||
CXXPseudoDestructorExpr(ASTContext &Context,
|
||||
CXXPseudoDestructorExpr(const ASTContext &Context,
|
||||
Expr *Base, bool isArrow, SourceLocation OperatorLoc,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
TypeSourceInfo *ScopeType,
|
||||
|
@ -2293,13 +2292,14 @@ class TypeTraitExpr : public Expr {
|
|||
|
||||
public:
|
||||
/// \brief Create a new type trait expression.
|
||||
static TypeTraitExpr *Create(ASTContext &C, QualType T, SourceLocation Loc,
|
||||
TypeTrait Kind,
|
||||
static TypeTraitExpr *Create(const ASTContext &C, QualType T,
|
||||
SourceLocation Loc, TypeTrait Kind,
|
||||
ArrayRef<TypeSourceInfo *> Args,
|
||||
SourceLocation RParenLoc,
|
||||
bool Value);
|
||||
|
||||
static TypeTraitExpr *CreateDeserialized(ASTContext &C, unsigned NumArgs);
|
||||
static TypeTraitExpr *CreateDeserialized(const ASTContext &C,
|
||||
unsigned NumArgs);
|
||||
|
||||
/// \brief Determine which type trait this expression uses.
|
||||
TypeTrait getTrait() const {
|
||||
|
@ -2512,7 +2512,7 @@ protected:
|
|||
return const_cast<OverloadExpr*>(this)->getTemplateKWAndArgsInfo();
|
||||
}
|
||||
|
||||
OverloadExpr(StmtClass K, ASTContext &C,
|
||||
OverloadExpr(StmtClass K, const ASTContext &C,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
SourceLocation TemplateKWLoc,
|
||||
const DeclarationNameInfo &NameInfo,
|
||||
|
@ -2526,7 +2526,7 @@ protected:
|
|||
: Expr(K, Empty), QualifierLoc(), Results(0), NumResults(0),
|
||||
HasTemplateKWAndArgsInfo(false) { }
|
||||
|
||||
void initializeResults(ASTContext &C,
|
||||
void initializeResults(const ASTContext &C,
|
||||
UnresolvedSetIterator Begin,
|
||||
UnresolvedSetIterator End);
|
||||
|
||||
|
@ -2694,7 +2694,7 @@ class UnresolvedLookupExpr : public OverloadExpr {
|
|||
/// against the qualified-lookup bits.
|
||||
CXXRecordDecl *NamingClass;
|
||||
|
||||
UnresolvedLookupExpr(ASTContext &C,
|
||||
UnresolvedLookupExpr(const ASTContext &C,
|
||||
CXXRecordDecl *NamingClass,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
SourceLocation TemplateKWLoc,
|
||||
|
@ -2716,7 +2716,7 @@ class UnresolvedLookupExpr : public OverloadExpr {
|
|||
friend class ASTStmtReader;
|
||||
|
||||
public:
|
||||
static UnresolvedLookupExpr *Create(ASTContext &C,
|
||||
static UnresolvedLookupExpr *Create(const ASTContext &C,
|
||||
CXXRecordDecl *NamingClass,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
const DeclarationNameInfo &NameInfo,
|
||||
|
@ -2728,7 +2728,7 @@ public:
|
|||
ADL, Overloaded, 0, Begin, End);
|
||||
}
|
||||
|
||||
static UnresolvedLookupExpr *Create(ASTContext &C,
|
||||
static UnresolvedLookupExpr *Create(const ASTContext &C,
|
||||
CXXRecordDecl *NamingClass,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
SourceLocation TemplateKWLoc,
|
||||
|
@ -2738,7 +2738,7 @@ public:
|
|||
UnresolvedSetIterator Begin,
|
||||
UnresolvedSetIterator End);
|
||||
|
||||
static UnresolvedLookupExpr *CreateEmpty(ASTContext &C,
|
||||
static UnresolvedLookupExpr *CreateEmpty(const ASTContext &C,
|
||||
bool HasTemplateKWAndArgsInfo,
|
||||
unsigned NumTemplateArgs);
|
||||
|
||||
|
@ -2816,13 +2816,13 @@ class DependentScopeDeclRefExpr : public Expr {
|
|||
const TemplateArgumentListInfo *Args);
|
||||
|
||||
public:
|
||||
static DependentScopeDeclRefExpr *Create(ASTContext &C,
|
||||
static DependentScopeDeclRefExpr *Create(const ASTContext &C,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
SourceLocation TemplateKWLoc,
|
||||
const DeclarationNameInfo &NameInfo,
|
||||
const TemplateArgumentListInfo *TemplateArgs);
|
||||
|
||||
static DependentScopeDeclRefExpr *CreateEmpty(ASTContext &C,
|
||||
static DependentScopeDeclRefExpr *CreateEmpty(const ASTContext &C,
|
||||
bool HasTemplateKWAndArgsInfo,
|
||||
unsigned NumTemplateArgs);
|
||||
|
||||
|
@ -2963,10 +2963,10 @@ private:
|
|||
friend class ASTStmtReader;
|
||||
|
||||
public:
|
||||
static ExprWithCleanups *Create(ASTContext &C, EmptyShell empty,
|
||||
static ExprWithCleanups *Create(const ASTContext &C, EmptyShell empty,
|
||||
unsigned numObjects);
|
||||
|
||||
static ExprWithCleanups *Create(ASTContext &C, Expr *subexpr,
|
||||
static ExprWithCleanups *Create(const ASTContext &C, Expr *subexpr,
|
||||
ArrayRef<CleanupObject> objects);
|
||||
|
||||
ArrayRef<CleanupObject> getObjects() const {
|
||||
|
@ -3046,13 +3046,13 @@ class CXXUnresolvedConstructExpr : public Expr {
|
|||
friend class ASTStmtReader;
|
||||
|
||||
public:
|
||||
static CXXUnresolvedConstructExpr *Create(ASTContext &C,
|
||||
static CXXUnresolvedConstructExpr *Create(const ASTContext &C,
|
||||
TypeSourceInfo *Type,
|
||||
SourceLocation LParenLoc,
|
||||
ArrayRef<Expr*> Args,
|
||||
SourceLocation RParenLoc);
|
||||
|
||||
static CXXUnresolvedConstructExpr *CreateEmpty(ASTContext &C,
|
||||
static CXXUnresolvedConstructExpr *CreateEmpty(const ASTContext &C,
|
||||
unsigned NumArgs);
|
||||
|
||||
/// \brief Retrieve the type that is being constructed, as specified
|
||||
|
@ -3176,36 +3176,32 @@ class CXXDependentScopeMemberExpr : public Expr {
|
|||
->getTemplateKWAndArgsInfo();
|
||||
}
|
||||
|
||||
CXXDependentScopeMemberExpr(ASTContext &C,
|
||||
Expr *Base, QualType BaseType, bool IsArrow,
|
||||
SourceLocation OperatorLoc,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
SourceLocation TemplateKWLoc,
|
||||
NamedDecl *FirstQualifierFoundInScope,
|
||||
DeclarationNameInfo MemberNameInfo,
|
||||
const TemplateArgumentListInfo *TemplateArgs);
|
||||
CXXDependentScopeMemberExpr(const ASTContext &C, Expr *Base,
|
||||
QualType BaseType, bool IsArrow,
|
||||
SourceLocation OperatorLoc,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
SourceLocation TemplateKWLoc,
|
||||
NamedDecl *FirstQualifierFoundInScope,
|
||||
DeclarationNameInfo MemberNameInfo,
|
||||
const TemplateArgumentListInfo *TemplateArgs);
|
||||
|
||||
public:
|
||||
CXXDependentScopeMemberExpr(ASTContext &C,
|
||||
Expr *Base, QualType BaseType,
|
||||
bool IsArrow,
|
||||
CXXDependentScopeMemberExpr(const ASTContext &C, Expr *Base,
|
||||
QualType BaseType, bool IsArrow,
|
||||
SourceLocation OperatorLoc,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
NamedDecl *FirstQualifierFoundInScope,
|
||||
DeclarationNameInfo MemberNameInfo);
|
||||
|
||||
static CXXDependentScopeMemberExpr *
|
||||
Create(ASTContext &C,
|
||||
Expr *Base, QualType BaseType, bool IsArrow,
|
||||
SourceLocation OperatorLoc,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
SourceLocation TemplateKWLoc,
|
||||
NamedDecl *FirstQualifierFoundInScope,
|
||||
Create(const ASTContext &C, Expr *Base, QualType BaseType, bool IsArrow,
|
||||
SourceLocation OperatorLoc, NestedNameSpecifierLoc QualifierLoc,
|
||||
SourceLocation TemplateKWLoc, NamedDecl *FirstQualifierFoundInScope,
|
||||
DeclarationNameInfo MemberNameInfo,
|
||||
const TemplateArgumentListInfo *TemplateArgs);
|
||||
|
||||
static CXXDependentScopeMemberExpr *
|
||||
CreateEmpty(ASTContext &C, bool HasTemplateKWAndArgsInfo,
|
||||
CreateEmpty(const ASTContext &C, bool HasTemplateKWAndArgsInfo,
|
||||
unsigned NumTemplateArgs);
|
||||
|
||||
/// \brief True if this is an implicit access, i.e. one in which the
|
||||
|
@ -3407,7 +3403,7 @@ class UnresolvedMemberExpr : public OverloadExpr {
|
|||
/// \brief The location of the '->' or '.' operator.
|
||||
SourceLocation OperatorLoc;
|
||||
|
||||
UnresolvedMemberExpr(ASTContext &C, bool HasUnresolvedUsing,
|
||||
UnresolvedMemberExpr(const ASTContext &C, bool HasUnresolvedUsing,
|
||||
Expr *Base, QualType BaseType, bool IsArrow,
|
||||
SourceLocation OperatorLoc,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
|
@ -3424,7 +3420,7 @@ class UnresolvedMemberExpr : public OverloadExpr {
|
|||
|
||||
public:
|
||||
static UnresolvedMemberExpr *
|
||||
Create(ASTContext &C, bool HasUnresolvedUsing,
|
||||
Create(const ASTContext &C, bool HasUnresolvedUsing,
|
||||
Expr *Base, QualType BaseType, bool IsArrow,
|
||||
SourceLocation OperatorLoc,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
|
@ -3434,7 +3430,7 @@ public:
|
|||
UnresolvedSetIterator Begin, UnresolvedSetIterator End);
|
||||
|
||||
static UnresolvedMemberExpr *
|
||||
CreateEmpty(ASTContext &C, bool HasTemplateKWAndArgsInfo,
|
||||
CreateEmpty(const ASTContext &C, bool HasTemplateKWAndArgsInfo,
|
||||
unsigned NumTemplateArgs);
|
||||
|
||||
/// \brief True if this is an implicit access, i.e., one in which the
|
||||
|
@ -3868,11 +3864,11 @@ class FunctionParmPackExpr : public Expr {
|
|||
friend class ASTStmtReader;
|
||||
|
||||
public:
|
||||
static FunctionParmPackExpr *Create(ASTContext &Context, QualType T,
|
||||
static FunctionParmPackExpr *Create(const ASTContext &Context, QualType T,
|
||||
ParmVarDecl *ParamPack,
|
||||
SourceLocation NameLoc,
|
||||
ArrayRef<Decl *> Params);
|
||||
static FunctionParmPackExpr *CreateEmpty(ASTContext &Context,
|
||||
static FunctionParmPackExpr *CreateEmpty(const ASTContext &Context,
|
||||
unsigned NumParams);
|
||||
|
||||
/// \brief Get the parameter pack which this expression refers to.
|
||||
|
|
|
@ -818,7 +818,7 @@ public:
|
|||
/// an lvalue. It removes a top-level reference (since there are no
|
||||
/// expressions of reference type) and deletes top-level cvr-qualifiers
|
||||
/// from non-class types (in C++) or all types (in C).
|
||||
QualType getNonLValueExprType(ASTContext &Context) const;
|
||||
QualType getNonLValueExprType(const ASTContext &Context) const;
|
||||
|
||||
/// getDesugaredType - Return the specified type with any "sugar" removed from
|
||||
/// the type. This takes off typedefs, typeof's etc. If the outer level of
|
||||
|
@ -2970,7 +2970,7 @@ public:
|
|||
NR_Nothrow ///< The noexcept specifier evaluates to true.
|
||||
};
|
||||
/// \brief Get the meaning of the noexcept spec on this function, if any.
|
||||
NoexceptResult getNoexceptSpec(ASTContext &Ctx) const;
|
||||
NoexceptResult getNoexceptSpec(const ASTContext &Ctx) const;
|
||||
unsigned getNumExceptions() const { return NumExceptions; }
|
||||
QualType getExceptionType(unsigned i) const {
|
||||
assert(i < NumExceptions && "Invalid exception number!");
|
||||
|
@ -3001,7 +3001,7 @@ public:
|
|||
return 0;
|
||||
return reinterpret_cast<FunctionDecl * const *>(arg_type_end())[1];
|
||||
}
|
||||
bool isNothrow(ASTContext &Ctx) const {
|
||||
bool isNothrow(const ASTContext &Ctx) const {
|
||||
ExceptionSpecificationType EST = getExceptionSpecType();
|
||||
assert(EST != EST_Unevaluated && EST != EST_Uninstantiated);
|
||||
if (EST == EST_DynamicNone || EST == EST_BasicNoexcept)
|
||||
|
|
|
@ -93,8 +93,8 @@ SourceLocation CXXScalarValueInitExpr::getLocStart() const {
|
|||
}
|
||||
|
||||
// CXXNewExpr
|
||||
CXXNewExpr::CXXNewExpr(ASTContext &C, bool globalNew, FunctionDecl *operatorNew,
|
||||
FunctionDecl *operatorDelete,
|
||||
CXXNewExpr::CXXNewExpr(const ASTContext &C, bool globalNew,
|
||||
FunctionDecl *operatorNew, FunctionDecl *operatorDelete,
|
||||
bool usualArrayDeleteWantsSize,
|
||||
ArrayRef<Expr*> placementArgs,
|
||||
SourceRange typeIdParens, Expr *arraySize,
|
||||
|
@ -156,7 +156,7 @@ CXXNewExpr::CXXNewExpr(ASTContext &C, bool globalNew, FunctionDecl *operatorNew,
|
|||
}
|
||||
}
|
||||
|
||||
void CXXNewExpr::AllocateArgsArray(ASTContext &C, bool isArray,
|
||||
void CXXNewExpr::AllocateArgsArray(const ASTContext &C, bool isArray,
|
||||
unsigned numPlaceArgs, bool hasInitializer){
|
||||
assert(SubExprs == 0 && "SubExprs already allocated");
|
||||
Array = isArray;
|
||||
|
@ -166,7 +166,7 @@ void CXXNewExpr::AllocateArgsArray(ASTContext &C, bool isArray,
|
|||
SubExprs = new (C) Stmt*[TotalSize];
|
||||
}
|
||||
|
||||
bool CXXNewExpr::shouldNullCheckAllocation(ASTContext &Ctx) const {
|
||||
bool CXXNewExpr::shouldNullCheckAllocation(const ASTContext &Ctx) const {
|
||||
return getOperatorNew()->getType()->
|
||||
castAs<FunctionProtoType>()->isNothrow(Ctx);
|
||||
}
|
||||
|
@ -190,7 +190,7 @@ PseudoDestructorTypeStorage::PseudoDestructorTypeStorage(TypeSourceInfo *Info)
|
|||
Location = Info->getTypeLoc().getLocalSourceRange().getBegin();
|
||||
}
|
||||
|
||||
CXXPseudoDestructorExpr::CXXPseudoDestructorExpr(ASTContext &Context,
|
||||
CXXPseudoDestructorExpr::CXXPseudoDestructorExpr(const ASTContext &Context,
|
||||
Expr *Base, bool isArrow, SourceLocation OperatorLoc,
|
||||
NestedNameSpecifierLoc QualifierLoc, TypeSourceInfo *ScopeType,
|
||||
SourceLocation ColonColonLoc, SourceLocation TildeLoc,
|
||||
|
@ -242,7 +242,7 @@ SourceLocation CXXPseudoDestructorExpr::getLocEnd() const {
|
|||
|
||||
// UnresolvedLookupExpr
|
||||
UnresolvedLookupExpr *
|
||||
UnresolvedLookupExpr::Create(ASTContext &C,
|
||||
UnresolvedLookupExpr::Create(const ASTContext &C,
|
||||
CXXRecordDecl *NamingClass,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
SourceLocation TemplateKWLoc,
|
||||
|
@ -263,7 +263,7 @@ UnresolvedLookupExpr::Create(ASTContext &C,
|
|||
}
|
||||
|
||||
UnresolvedLookupExpr *
|
||||
UnresolvedLookupExpr::CreateEmpty(ASTContext &C,
|
||||
UnresolvedLookupExpr::CreateEmpty(const ASTContext &C,
|
||||
bool HasTemplateKWAndArgsInfo,
|
||||
unsigned NumTemplateArgs) {
|
||||
std::size_t size = sizeof(UnresolvedLookupExpr);
|
||||
|
@ -276,7 +276,7 @@ UnresolvedLookupExpr::CreateEmpty(ASTContext &C,
|
|||
return E;
|
||||
}
|
||||
|
||||
OverloadExpr::OverloadExpr(StmtClass K, ASTContext &C,
|
||||
OverloadExpr::OverloadExpr(StmtClass K, const ASTContext &C,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
SourceLocation TemplateKWLoc,
|
||||
const DeclarationNameInfo &NameInfo,
|
||||
|
@ -348,7 +348,7 @@ OverloadExpr::OverloadExpr(StmtClass K, ASTContext &C,
|
|||
setType(C.DependentTy);
|
||||
}
|
||||
|
||||
void OverloadExpr::initializeResults(ASTContext &C,
|
||||
void OverloadExpr::initializeResults(const ASTContext &C,
|
||||
UnresolvedSetIterator Begin,
|
||||
UnresolvedSetIterator End) {
|
||||
assert(Results == 0 && "Results already initialized!");
|
||||
|
@ -404,7 +404,7 @@ DependentScopeDeclRefExpr::DependentScopeDeclRefExpr(QualType T,
|
|||
}
|
||||
|
||||
DependentScopeDeclRefExpr *
|
||||
DependentScopeDeclRefExpr::Create(ASTContext &C,
|
||||
DependentScopeDeclRefExpr::Create(const ASTContext &C,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
SourceLocation TemplateKWLoc,
|
||||
const DeclarationNameInfo &NameInfo,
|
||||
|
@ -420,7 +420,7 @@ DependentScopeDeclRefExpr::Create(ASTContext &C,
|
|||
}
|
||||
|
||||
DependentScopeDeclRefExpr *
|
||||
DependentScopeDeclRefExpr::CreateEmpty(ASTContext &C,
|
||||
DependentScopeDeclRefExpr::CreateEmpty(const ASTContext &C,
|
||||
bool HasTemplateKWAndArgsInfo,
|
||||
unsigned NumTemplateArgs) {
|
||||
std::size_t size = sizeof(DependentScopeDeclRefExpr);
|
||||
|
@ -538,7 +538,7 @@ const char *CXXNamedCastExpr::getCastName() const {
|
|||
}
|
||||
}
|
||||
|
||||
CXXStaticCastExpr *CXXStaticCastExpr::Create(ASTContext &C, QualType T,
|
||||
CXXStaticCastExpr *CXXStaticCastExpr::Create(const ASTContext &C, QualType T,
|
||||
ExprValueKind VK,
|
||||
CastKind K, Expr *Op,
|
||||
const CXXCastPath *BasePath,
|
||||
|
@ -556,14 +556,14 @@ CXXStaticCastExpr *CXXStaticCastExpr::Create(ASTContext &C, QualType T,
|
|||
return E;
|
||||
}
|
||||
|
||||
CXXStaticCastExpr *CXXStaticCastExpr::CreateEmpty(ASTContext &C,
|
||||
CXXStaticCastExpr *CXXStaticCastExpr::CreateEmpty(const ASTContext &C,
|
||||
unsigned PathSize) {
|
||||
void *Buffer =
|
||||
C.Allocate(sizeof(CXXStaticCastExpr) + PathSize * sizeof(CXXBaseSpecifier*));
|
||||
return new (Buffer) CXXStaticCastExpr(EmptyShell(), PathSize);
|
||||
}
|
||||
|
||||
CXXDynamicCastExpr *CXXDynamicCastExpr::Create(ASTContext &C, QualType T,
|
||||
CXXDynamicCastExpr *CXXDynamicCastExpr::Create(const ASTContext &C, QualType T,
|
||||
ExprValueKind VK,
|
||||
CastKind K, Expr *Op,
|
||||
const CXXCastPath *BasePath,
|
||||
|
@ -581,7 +581,7 @@ CXXDynamicCastExpr *CXXDynamicCastExpr::Create(ASTContext &C, QualType T,
|
|||
return E;
|
||||
}
|
||||
|
||||
CXXDynamicCastExpr *CXXDynamicCastExpr::CreateEmpty(ASTContext &C,
|
||||
CXXDynamicCastExpr *CXXDynamicCastExpr::CreateEmpty(const ASTContext &C,
|
||||
unsigned PathSize) {
|
||||
void *Buffer =
|
||||
C.Allocate(sizeof(CXXDynamicCastExpr) + PathSize * sizeof(CXXBaseSpecifier*));
|
||||
|
@ -622,8 +622,8 @@ bool CXXDynamicCastExpr::isAlwaysNull() const
|
|||
}
|
||||
|
||||
CXXReinterpretCastExpr *
|
||||
CXXReinterpretCastExpr::Create(ASTContext &C, QualType T, ExprValueKind VK,
|
||||
CastKind K, Expr *Op,
|
||||
CXXReinterpretCastExpr::Create(const ASTContext &C, QualType T,
|
||||
ExprValueKind VK, CastKind K, Expr *Op,
|
||||
const CXXCastPath *BasePath,
|
||||
TypeSourceInfo *WrittenTy, SourceLocation L,
|
||||
SourceLocation RParenLoc,
|
||||
|
@ -639,13 +639,13 @@ CXXReinterpretCastExpr::Create(ASTContext &C, QualType T, ExprValueKind VK,
|
|||
}
|
||||
|
||||
CXXReinterpretCastExpr *
|
||||
CXXReinterpretCastExpr::CreateEmpty(ASTContext &C, unsigned PathSize) {
|
||||
CXXReinterpretCastExpr::CreateEmpty(const ASTContext &C, unsigned PathSize) {
|
||||
void *Buffer = C.Allocate(sizeof(CXXReinterpretCastExpr)
|
||||
+ PathSize * sizeof(CXXBaseSpecifier*));
|
||||
return new (Buffer) CXXReinterpretCastExpr(EmptyShell(), PathSize);
|
||||
}
|
||||
|
||||
CXXConstCastExpr *CXXConstCastExpr::Create(ASTContext &C, QualType T,
|
||||
CXXConstCastExpr *CXXConstCastExpr::Create(const ASTContext &C, QualType T,
|
||||
ExprValueKind VK, Expr *Op,
|
||||
TypeSourceInfo *WrittenTy,
|
||||
SourceLocation L,
|
||||
|
@ -654,12 +654,12 @@ CXXConstCastExpr *CXXConstCastExpr::Create(ASTContext &C, QualType T,
|
|||
return new (C) CXXConstCastExpr(T, VK, Op, WrittenTy, L, RParenLoc, AngleBrackets);
|
||||
}
|
||||
|
||||
CXXConstCastExpr *CXXConstCastExpr::CreateEmpty(ASTContext &C) {
|
||||
CXXConstCastExpr *CXXConstCastExpr::CreateEmpty(const ASTContext &C) {
|
||||
return new (C) CXXConstCastExpr(EmptyShell());
|
||||
}
|
||||
|
||||
CXXFunctionalCastExpr *
|
||||
CXXFunctionalCastExpr::Create(ASTContext &C, QualType T, ExprValueKind VK,
|
||||
CXXFunctionalCastExpr::Create(const ASTContext &C, QualType T, ExprValueKind VK,
|
||||
TypeSourceInfo *Written, CastKind K, Expr *Op,
|
||||
const CXXCastPath *BasePath,
|
||||
SourceLocation L, SourceLocation R) {
|
||||
|
@ -673,7 +673,7 @@ CXXFunctionalCastExpr::Create(ASTContext &C, QualType T, ExprValueKind VK,
|
|||
}
|
||||
|
||||
CXXFunctionalCastExpr *
|
||||
CXXFunctionalCastExpr::CreateEmpty(ASTContext &C, unsigned PathSize) {
|
||||
CXXFunctionalCastExpr::CreateEmpty(const ASTContext &C, unsigned PathSize) {
|
||||
void *Buffer = C.Allocate(sizeof(CXXFunctionalCastExpr)
|
||||
+ PathSize * sizeof(CXXBaseSpecifier*));
|
||||
return new (Buffer) CXXFunctionalCastExpr(EmptyShell(), PathSize);
|
||||
|
@ -722,14 +722,14 @@ const IdentifierInfo *UserDefinedLiteral::getUDSuffix() const {
|
|||
}
|
||||
|
||||
CXXDefaultArgExpr *
|
||||
CXXDefaultArgExpr::Create(ASTContext &C, SourceLocation Loc,
|
||||
CXXDefaultArgExpr::Create(const ASTContext &C, SourceLocation Loc,
|
||||
ParmVarDecl *Param, Expr *SubExpr) {
|
||||
void *Mem = C.Allocate(sizeof(CXXDefaultArgExpr) + sizeof(Stmt *));
|
||||
return new (Mem) CXXDefaultArgExpr(CXXDefaultArgExprClass, Loc, Param,
|
||||
SubExpr);
|
||||
}
|
||||
|
||||
CXXDefaultInitExpr::CXXDefaultInitExpr(ASTContext &C, SourceLocation Loc,
|
||||
CXXDefaultInitExpr::CXXDefaultInitExpr(const ASTContext &C, SourceLocation Loc,
|
||||
FieldDecl *Field, QualType T)
|
||||
: Expr(CXXDefaultInitExprClass, T.getNonLValueExprType(C),
|
||||
T->isLValueReferenceType() ? VK_LValue : T->isRValueReferenceType()
|
||||
|
@ -740,12 +740,12 @@ CXXDefaultInitExpr::CXXDefaultInitExpr(ASTContext &C, SourceLocation Loc,
|
|||
assert(Field->hasInClassInitializer());
|
||||
}
|
||||
|
||||
CXXTemporary *CXXTemporary::Create(ASTContext &C,
|
||||
CXXTemporary *CXXTemporary::Create(const ASTContext &C,
|
||||
const CXXDestructorDecl *Destructor) {
|
||||
return new (C) CXXTemporary(Destructor);
|
||||
}
|
||||
|
||||
CXXBindTemporaryExpr *CXXBindTemporaryExpr::Create(ASTContext &C,
|
||||
CXXBindTemporaryExpr *CXXBindTemporaryExpr::Create(const ASTContext &C,
|
||||
CXXTemporary *Temp,
|
||||
Expr* SubExpr) {
|
||||
assert((SubExpr->getType()->isRecordType() ||
|
||||
|
@ -755,7 +755,7 @@ CXXBindTemporaryExpr *CXXBindTemporaryExpr::Create(ASTContext &C,
|
|||
return new (C) CXXBindTemporaryExpr(Temp, SubExpr);
|
||||
}
|
||||
|
||||
CXXTemporaryObjectExpr::CXXTemporaryObjectExpr(ASTContext &C,
|
||||
CXXTemporaryObjectExpr::CXXTemporaryObjectExpr(const ASTContext &C,
|
||||
CXXConstructorDecl *Cons,
|
||||
TypeSourceInfo *Type,
|
||||
ArrayRef<Expr*> Args,
|
||||
|
@ -781,7 +781,7 @@ SourceLocation CXXTemporaryObjectExpr::getLocEnd() const {
|
|||
return getParenRange().getEnd();
|
||||
}
|
||||
|
||||
CXXConstructExpr *CXXConstructExpr::Create(ASTContext &C, QualType T,
|
||||
CXXConstructExpr *CXXConstructExpr::Create(const ASTContext &C, QualType T,
|
||||
SourceLocation Loc,
|
||||
CXXConstructorDecl *D, bool Elidable,
|
||||
ArrayRef<Expr*> Args,
|
||||
|
@ -797,8 +797,8 @@ CXXConstructExpr *CXXConstructExpr::Create(ASTContext &C, QualType T,
|
|||
ParenRange);
|
||||
}
|
||||
|
||||
CXXConstructExpr::CXXConstructExpr(ASTContext &C, StmtClass SC, QualType T,
|
||||
SourceLocation Loc,
|
||||
CXXConstructExpr::CXXConstructExpr(const ASTContext &C, StmtClass SC,
|
||||
QualType T, SourceLocation Loc,
|
||||
CXXConstructorDecl *D, bool elidable,
|
||||
ArrayRef<Expr*> args,
|
||||
bool HadMultipleCandidates,
|
||||
|
@ -907,7 +907,7 @@ LambdaExpr::LambdaExpr(QualType T,
|
|||
// FIXME: Propagate "has unexpanded parameter pack" bit.
|
||||
|
||||
// Copy captures.
|
||||
ASTContext &Context = Class->getASTContext();
|
||||
const ASTContext &Context = Class->getASTContext();
|
||||
Data.NumCaptures = NumCaptures;
|
||||
Data.NumExplicitCaptures = 0;
|
||||
Data.Captures = (Capture *)Context.Allocate(sizeof(Capture) * NumCaptures);
|
||||
|
@ -939,7 +939,7 @@ LambdaExpr::LambdaExpr(QualType T,
|
|||
}
|
||||
}
|
||||
|
||||
LambdaExpr *LambdaExpr::Create(ASTContext &Context,
|
||||
LambdaExpr *LambdaExpr::Create(const ASTContext &Context,
|
||||
CXXRecordDecl *Class,
|
||||
SourceRange IntroducerRange,
|
||||
LambdaCaptureDefault CaptureDefault,
|
||||
|
@ -971,7 +971,8 @@ LambdaExpr *LambdaExpr::Create(ASTContext &Context,
|
|||
ClosingBrace, ContainsUnexpandedParameterPack);
|
||||
}
|
||||
|
||||
LambdaExpr *LambdaExpr::CreateDeserialized(ASTContext &C, unsigned NumCaptures,
|
||||
LambdaExpr *LambdaExpr::CreateDeserialized(const ASTContext &C,
|
||||
unsigned NumCaptures,
|
||||
unsigned NumArrayIndexVars) {
|
||||
unsigned Size = sizeof(LambdaExpr) + sizeof(Stmt *) * (NumCaptures + 1);
|
||||
if (NumArrayIndexVars)
|
||||
|
@ -1059,7 +1060,7 @@ ExprWithCleanups::ExprWithCleanups(Expr *subexpr,
|
|||
getObjectsBuffer()[i] = objects[i];
|
||||
}
|
||||
|
||||
ExprWithCleanups *ExprWithCleanups::Create(ASTContext &C, Expr *subexpr,
|
||||
ExprWithCleanups *ExprWithCleanups::Create(const ASTContext &C, Expr *subexpr,
|
||||
ArrayRef<CleanupObject> objects) {
|
||||
size_t size = sizeof(ExprWithCleanups)
|
||||
+ objects.size() * sizeof(CleanupObject);
|
||||
|
@ -1072,7 +1073,8 @@ ExprWithCleanups::ExprWithCleanups(EmptyShell empty, unsigned numObjects)
|
|||
ExprWithCleanupsBits.NumObjects = numObjects;
|
||||
}
|
||||
|
||||
ExprWithCleanups *ExprWithCleanups::Create(ASTContext &C, EmptyShell empty,
|
||||
ExprWithCleanups *ExprWithCleanups::Create(const ASTContext &C,
|
||||
EmptyShell empty,
|
||||
unsigned numObjects) {
|
||||
size_t size = sizeof(ExprWithCleanups) + numObjects * sizeof(CleanupObject);
|
||||
void *buffer = C.Allocate(size, llvm::alignOf<ExprWithCleanups>());
|
||||
|
@ -1105,7 +1107,7 @@ CXXUnresolvedConstructExpr::CXXUnresolvedConstructExpr(TypeSourceInfo *Type,
|
|||
}
|
||||
|
||||
CXXUnresolvedConstructExpr *
|
||||
CXXUnresolvedConstructExpr::Create(ASTContext &C,
|
||||
CXXUnresolvedConstructExpr::Create(const ASTContext &C,
|
||||
TypeSourceInfo *Type,
|
||||
SourceLocation LParenLoc,
|
||||
ArrayRef<Expr*> Args,
|
||||
|
@ -1116,7 +1118,7 @@ CXXUnresolvedConstructExpr::Create(ASTContext &C,
|
|||
}
|
||||
|
||||
CXXUnresolvedConstructExpr *
|
||||
CXXUnresolvedConstructExpr::CreateEmpty(ASTContext &C, unsigned NumArgs) {
|
||||
CXXUnresolvedConstructExpr::CreateEmpty(const ASTContext &C, unsigned NumArgs) {
|
||||
Stmt::EmptyShell Empty;
|
||||
void *Mem = C.Allocate(sizeof(CXXUnresolvedConstructExpr) +
|
||||
sizeof(Expr *) * NumArgs);
|
||||
|
@ -1127,7 +1129,7 @@ SourceLocation CXXUnresolvedConstructExpr::getLocStart() const {
|
|||
return Type->getTypeLoc().getBeginLoc();
|
||||
}
|
||||
|
||||
CXXDependentScopeMemberExpr::CXXDependentScopeMemberExpr(ASTContext &C,
|
||||
CXXDependentScopeMemberExpr::CXXDependentScopeMemberExpr(const ASTContext &C,
|
||||
Expr *Base, QualType BaseType,
|
||||
bool IsArrow,
|
||||
SourceLocation OperatorLoc,
|
||||
|
@ -1163,7 +1165,7 @@ CXXDependentScopeMemberExpr::CXXDependentScopeMemberExpr(ASTContext &C,
|
|||
}
|
||||
}
|
||||
|
||||
CXXDependentScopeMemberExpr::CXXDependentScopeMemberExpr(ASTContext &C,
|
||||
CXXDependentScopeMemberExpr::CXXDependentScopeMemberExpr(const ASTContext &C,
|
||||
Expr *Base, QualType BaseType,
|
||||
bool IsArrow,
|
||||
SourceLocation OperatorLoc,
|
||||
|
@ -1184,7 +1186,7 @@ CXXDependentScopeMemberExpr::CXXDependentScopeMemberExpr(ASTContext &C,
|
|||
MemberNameInfo(MemberNameInfo) { }
|
||||
|
||||
CXXDependentScopeMemberExpr *
|
||||
CXXDependentScopeMemberExpr::Create(ASTContext &C,
|
||||
CXXDependentScopeMemberExpr::Create(const ASTContext &C,
|
||||
Expr *Base, QualType BaseType, bool IsArrow,
|
||||
SourceLocation OperatorLoc,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
|
@ -1213,7 +1215,7 @@ CXXDependentScopeMemberExpr::Create(ASTContext &C,
|
|||
}
|
||||
|
||||
CXXDependentScopeMemberExpr *
|
||||
CXXDependentScopeMemberExpr::CreateEmpty(ASTContext &C,
|
||||
CXXDependentScopeMemberExpr::CreateEmpty(const ASTContext &C,
|
||||
bool HasTemplateKWAndArgsInfo,
|
||||
unsigned NumTemplateArgs) {
|
||||
if (!HasTemplateKWAndArgsInfo)
|
||||
|
@ -1264,7 +1266,7 @@ static bool hasOnlyNonStaticMemberFunctions(UnresolvedSetIterator begin,
|
|||
return true;
|
||||
}
|
||||
|
||||
UnresolvedMemberExpr::UnresolvedMemberExpr(ASTContext &C,
|
||||
UnresolvedMemberExpr::UnresolvedMemberExpr(const ASTContext &C,
|
||||
bool HasUnresolvedUsing,
|
||||
Expr *Base, QualType BaseType,
|
||||
bool IsArrow,
|
||||
|
@ -1302,8 +1304,7 @@ bool UnresolvedMemberExpr::isImplicitAccess() const {
|
|||
}
|
||||
|
||||
UnresolvedMemberExpr *
|
||||
UnresolvedMemberExpr::Create(ASTContext &C,
|
||||
bool HasUnresolvedUsing,
|
||||
UnresolvedMemberExpr::Create(const ASTContext &C, bool HasUnresolvedUsing,
|
||||
Expr *Base, QualType BaseType, bool IsArrow,
|
||||
SourceLocation OperatorLoc,
|
||||
NestedNameSpecifierLoc QualifierLoc,
|
||||
|
@ -1326,7 +1327,8 @@ UnresolvedMemberExpr::Create(ASTContext &C,
|
|||
}
|
||||
|
||||
UnresolvedMemberExpr *
|
||||
UnresolvedMemberExpr::CreateEmpty(ASTContext &C, bool HasTemplateKWAndArgsInfo,
|
||||
UnresolvedMemberExpr::CreateEmpty(const ASTContext &C,
|
||||
bool HasTemplateKWAndArgsInfo,
|
||||
unsigned NumTemplateArgs) {
|
||||
std::size_t size = sizeof(UnresolvedMemberExpr);
|
||||
if (HasTemplateKWAndArgsInfo)
|
||||
|
@ -1394,7 +1396,7 @@ FunctionParmPackExpr::FunctionParmPackExpr(QualType T, ParmVarDecl *ParamPack,
|
|||
}
|
||||
|
||||
FunctionParmPackExpr *
|
||||
FunctionParmPackExpr::Create(ASTContext &Context, QualType T,
|
||||
FunctionParmPackExpr::Create(const ASTContext &Context, QualType T,
|
||||
ParmVarDecl *ParamPack, SourceLocation NameLoc,
|
||||
ArrayRef<Decl *> Params) {
|
||||
return new (Context.Allocate(sizeof(FunctionParmPackExpr) +
|
||||
|
@ -1403,7 +1405,8 @@ FunctionParmPackExpr::Create(ASTContext &Context, QualType T,
|
|||
}
|
||||
|
||||
FunctionParmPackExpr *
|
||||
FunctionParmPackExpr::CreateEmpty(ASTContext &Context, unsigned NumParams) {
|
||||
FunctionParmPackExpr::CreateEmpty(const ASTContext &Context,
|
||||
unsigned NumParams) {
|
||||
return new (Context.Allocate(sizeof(FunctionParmPackExpr) +
|
||||
sizeof(ParmVarDecl*) * NumParams))
|
||||
FunctionParmPackExpr(QualType(), 0, SourceLocation(), 0, 0);
|
||||
|
@ -1438,7 +1441,7 @@ TypeTraitExpr::TypeTraitExpr(QualType T, SourceLocation Loc, TypeTrait Kind,
|
|||
}
|
||||
}
|
||||
|
||||
TypeTraitExpr *TypeTraitExpr::Create(ASTContext &C, QualType T,
|
||||
TypeTraitExpr *TypeTraitExpr::Create(const ASTContext &C, QualType T,
|
||||
SourceLocation Loc,
|
||||
TypeTrait Kind,
|
||||
ArrayRef<TypeSourceInfo *> Args,
|
||||
|
@ -1449,7 +1452,7 @@ TypeTraitExpr *TypeTraitExpr::Create(ASTContext &C, QualType T,
|
|||
return new (Mem) TypeTraitExpr(T, Loc, Kind, Args, RParenLoc, Value);
|
||||
}
|
||||
|
||||
TypeTraitExpr *TypeTraitExpr::CreateDeserialized(ASTContext &C,
|
||||
TypeTraitExpr *TypeTraitExpr::CreateDeserialized(const ASTContext &C,
|
||||
unsigned NumArgs) {
|
||||
unsigned Size = sizeof(TypeTraitExpr) + sizeof(TypeSourceInfo*) * NumArgs;
|
||||
void *Mem = C.Allocate(Size);
|
||||
|
|
|
@ -8053,7 +8053,7 @@ static ICEDiag NoDiag() { return ICEDiag(IK_ICE, SourceLocation()); }
|
|||
|
||||
static ICEDiag Worst(ICEDiag A, ICEDiag B) { return A.Kind >= B.Kind ? A : B; }
|
||||
|
||||
static ICEDiag CheckEvalInICE(const Expr* E, ASTContext &Ctx) {
|
||||
static ICEDiag CheckEvalInICE(const Expr* E, const ASTContext &Ctx) {
|
||||
Expr::EvalResult EVResult;
|
||||
if (!E->EvaluateAsRValue(EVResult, Ctx) || EVResult.HasSideEffects ||
|
||||
!EVResult.Val.isInt())
|
||||
|
@ -8062,7 +8062,7 @@ static ICEDiag CheckEvalInICE(const Expr* E, ASTContext &Ctx) {
|
|||
return NoDiag();
|
||||
}
|
||||
|
||||
static ICEDiag CheckICE(const Expr* E, ASTContext &Ctx) {
|
||||
static ICEDiag CheckICE(const Expr* E, const ASTContext &Ctx) {
|
||||
assert(!E->isValueDependent() && "Should not see value dependent exprs!");
|
||||
if (!E->getType()->isIntegralOrEnumerationType())
|
||||
return ICEDiag(IK_NotICE, E->getLocStart());
|
||||
|
@ -8423,7 +8423,7 @@ static ICEDiag CheckICE(const Expr* E, ASTContext &Ctx) {
|
|||
}
|
||||
|
||||
/// Evaluate an expression as a C++11 integral constant expression.
|
||||
static bool EvaluateCPlusPlus11IntegralConstantExpr(ASTContext &Ctx,
|
||||
static bool EvaluateCPlusPlus11IntegralConstantExpr(const ASTContext &Ctx,
|
||||
const Expr *E,
|
||||
llvm::APSInt *Value,
|
||||
SourceLocation *Loc) {
|
||||
|
@ -8441,7 +8441,8 @@ static bool EvaluateCPlusPlus11IntegralConstantExpr(ASTContext &Ctx,
|
|||
return true;
|
||||
}
|
||||
|
||||
bool Expr::isIntegerConstantExpr(ASTContext &Ctx, SourceLocation *Loc) const {
|
||||
bool Expr::isIntegerConstantExpr(const ASTContext &Ctx,
|
||||
SourceLocation *Loc) const {
|
||||
if (Ctx.getLangOpts().CPlusPlus11)
|
||||
return EvaluateCPlusPlus11IntegralConstantExpr(Ctx, this, 0, Loc);
|
||||
|
||||
|
@ -8453,7 +8454,7 @@ bool Expr::isIntegerConstantExpr(ASTContext &Ctx, SourceLocation *Loc) const {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool Expr::isIntegerConstantExpr(llvm::APSInt &Value, ASTContext &Ctx,
|
||||
bool Expr::isIntegerConstantExpr(llvm::APSInt &Value, const ASTContext &Ctx,
|
||||
SourceLocation *Loc, bool isEvaluated) const {
|
||||
if (Ctx.getLangOpts().CPlusPlus11)
|
||||
return EvaluateCPlusPlus11IntegralConstantExpr(Ctx, this, &Value, Loc);
|
||||
|
@ -8465,11 +8466,11 @@ bool Expr::isIntegerConstantExpr(llvm::APSInt &Value, ASTContext &Ctx,
|
|||
return true;
|
||||
}
|
||||
|
||||
bool Expr::isCXX98IntegralConstantExpr(ASTContext &Ctx) const {
|
||||
bool Expr::isCXX98IntegralConstantExpr(const ASTContext &Ctx) const {
|
||||
return CheckICE(this, Ctx).Kind == IK_ICE;
|
||||
}
|
||||
|
||||
bool Expr::isCXX11ConstantExpr(ASTContext &Ctx, APValue *Result,
|
||||
bool Expr::isCXX11ConstantExpr(const ASTContext &Ctx, APValue *Result,
|
||||
SourceLocation *Loc) const {
|
||||
// We support this checking in C++98 mode in order to diagnose compatibility
|
||||
// issues.
|
||||
|
|
|
@ -1545,7 +1545,7 @@ StringRef BuiltinType::getName(const PrintingPolicy &Policy) const {
|
|||
llvm_unreachable("Invalid builtin type.");
|
||||
}
|
||||
|
||||
QualType QualType::getNonLValueExprType(ASTContext &Context) const {
|
||||
QualType QualType::getNonLValueExprType(const ASTContext &Context) const {
|
||||
if (const ReferenceType *RefType = getTypePtr()->getAs<ReferenceType>())
|
||||
return RefType->getPointeeType();
|
||||
|
||||
|
@ -1661,7 +1661,7 @@ FunctionProtoType::FunctionProtoType(QualType result, ArrayRef<QualType> args,
|
|||
}
|
||||
|
||||
FunctionProtoType::NoexceptResult
|
||||
FunctionProtoType::getNoexceptSpec(ASTContext &ctx) const {
|
||||
FunctionProtoType::getNoexceptSpec(const ASTContext &ctx) const {
|
||||
ExceptionSpecificationType est = getExceptionSpecType();
|
||||
if (est == EST_BasicNoexcept)
|
||||
return NR_Nothrow;
|
||||
|
|
Loading…
Reference in New Issue