From: Dmitri Gribenko Date: Sat, 26 Jan 2013 15:15:52 +0000 (+0000) Subject: Constify some getters of DesignatedInitExpr X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d615f88e3c24f91a65c25a4f7e66e0f97b18cc15;p=clang Constify some getters of DesignatedInitExpr git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173574 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/Expr.h b/include/clang/AST/Expr.h index e28ef97579..c6e0a2ce00 100644 --- a/include/clang/AST/Expr.h +++ b/include/clang/AST/Expr.h @@ -4037,9 +4037,9 @@ public: void setDesignators(ASTContext &C, const Designator *Desigs, unsigned NumDesigs); - Expr *getArrayIndex(const Designator& D); - Expr *getArrayRangeStart(const Designator& D); - Expr *getArrayRangeEnd(const Designator& D); + Expr *getArrayIndex(const Designator &D) const; + Expr *getArrayRangeStart(const Designator &D) const; + Expr *getArrayRangeEnd(const Designator &D) const; /// @brief Retrieve the location of the '=' that precedes the /// initializer value itself, if present. diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp index 6888c46ae4..74ef46ff75 100644 --- a/lib/AST/Expr.cpp +++ b/lib/AST/Expr.cpp @@ -3729,27 +3729,30 @@ SourceLocation DesignatedInitExpr::getLocEnd() const { return getInit()->getLocEnd(); } -Expr *DesignatedInitExpr::getArrayIndex(const Designator& D) { +Expr *DesignatedInitExpr::getArrayIndex(const Designator& D) const { assert(D.Kind == Designator::ArrayDesignator && "Requires array designator"); - char* Ptr = static_cast(static_cast(this)); + char *Ptr = static_cast( + const_cast(static_cast(this))); Ptr += sizeof(DesignatedInitExpr); Stmt **SubExprs = reinterpret_cast(reinterpret_cast(Ptr)); return cast(*(SubExprs + D.ArrayOrRange.Index + 1)); } -Expr *DesignatedInitExpr::getArrayRangeStart(const Designator& D) { +Expr *DesignatedInitExpr::getArrayRangeStart(const Designator &D) const { assert(D.Kind == Designator::ArrayRangeDesignator && "Requires array range designator"); - char* Ptr = static_cast(static_cast(this)); + char *Ptr = static_cast( + const_cast(static_cast(this))); Ptr += sizeof(DesignatedInitExpr); Stmt **SubExprs = reinterpret_cast(reinterpret_cast(Ptr)); return cast(*(SubExprs + D.ArrayOrRange.Index + 1)); } -Expr *DesignatedInitExpr::getArrayRangeEnd(const Designator& D) { +Expr *DesignatedInitExpr::getArrayRangeEnd(const Designator &D) const { assert(D.Kind == Designator::ArrayRangeDesignator && "Requires array range designator"); - char* Ptr = static_cast(static_cast(this)); + char *Ptr = static_cast( + const_cast(static_cast(this))); Ptr += sizeof(DesignatedInitExpr); Stmt **SubExprs = reinterpret_cast(reinterpret_cast(Ptr)); return cast(*(SubExprs + D.ArrayOrRange.Index + 2));