[cfe-commits] r130573 - in /cfe/trunk/include/clang/AST: Expr.h Stmt.h
Fariborz Jahanian
fjahanian at apple.com
Sat Apr 30 10:27:28 PDT 2011
Doesn't this deserve a warning somewhere? What can trigger this assertion?
- Fariborz
On Apr 29, 2011, at 7:28 PM, Argyrios Kyrtzidis wrote:
> Author: akirtzidis
> Date: Fri Apr 29 21:28:27 2011
> New Revision: 130573
>
> URL: http://llvm.org/viewvc/llvm-project?rev=130573&view=rev
> Log:
> Add a couple of assertions to make sure the bitfields can fit the value assigned to them. No functionality change.
>
> Modified:
> cfe/trunk/include/clang/AST/Expr.h
> cfe/trunk/include/clang/AST/Stmt.h
>
> Modified: cfe/trunk/include/clang/AST/Expr.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Expr.h?rev=130573&r1=130572&r2=130573&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/Expr.h (original)
> +++ cfe/trunk/include/clang/AST/Expr.h Fri Apr 29 21:28:27 2011
> @@ -2243,6 +2243,12 @@
> }
> CXXBaseSpecifier **path_buffer();
>
> + void setBasePathSize(unsigned basePathSize) {
> + CastExprBits.BasePathSize = basePathSize;
> + assert(CastExprBits.BasePathSize == basePathSize &&
> + "basePathSize doesn't fit in bits of CastExprBits.BasePathSize!");
> + }
> +
> protected:
> CastExpr(StmtClass SC, QualType ty, ExprValueKind VK,
> const CastKind kind, Expr *op, unsigned BasePathSize) :
> @@ -2258,14 +2264,14 @@
> Op(op) {
> assert(kind != CK_Invalid && "creating cast with invalid cast kind");
> CastExprBits.Kind = kind;
> - CastExprBits.BasePathSize = BasePathSize;
> + setBasePathSize(BasePathSize);
> CheckCastConsistency();
> }
>
> /// \brief Construct an empty cast.
> CastExpr(StmtClass SC, EmptyShell Empty, unsigned BasePathSize)
> : Expr(SC, Empty) {
> - CastExprBits.BasePathSize = BasePathSize;
> + setBasePathSize(BasePathSize);
> }
>
> public:
>
> Modified: cfe/trunk/include/clang/AST/Stmt.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Stmt.h?rev=130573&r1=130572&r2=130573&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/Stmt.h (original)
> +++ cfe/trunk/include/clang/AST/Stmt.h Fri Apr 29 21:28:27 2011
> @@ -426,6 +426,8 @@
> SourceLocation LB, SourceLocation RB)
> : Stmt(CompoundStmtClass), LBracLoc(LB), RBracLoc(RB) {
> CompoundStmtBits.NumStmts = NumStmts;
> + assert(CompoundStmtBits.NumStmts == NumStmts &&
> + "NumStmts doesn't fit in bits of CompoundStmtBits.NumStmts!");
>
> if (NumStmts == 0) {
> Body = 0;
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list