From a92950743f6589ccdce02ec65c0d6e626ccee211 Mon Sep 17 00:00:00 2001 From: Kimmo Ollila Date: Thu, 26 Jan 2017 12:46:16 +0200 Subject: Add fixes for INTEGRITY Full definitions of types are needed in static_casts. Change-Id: I028ffc40a76cdb16cb297a181b3d9dfe9d09c945 Reviewed-by: Simon Hausmann --- src/qml/compiler/qv4jsir_p.h | 62 ++++++++++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 20 deletions(-) (limited to 'src/qml/compiler/qv4jsir_p.h') diff --git a/src/qml/compiler/qv4jsir_p.h b/src/qml/compiler/qv4jsir_p.h index 73aa6c4975..04bc3d86e5 100644 --- a/src/qml/compiler/qv4jsir_p.h +++ b/src/qml/compiler/qv4jsir_p.h @@ -315,20 +315,20 @@ struct Q_AUTOTEST_EXPORT Expr { Expr(ExprKind exprKind): type(UnknownType), exprKind(exprKind) {} bool isLValue() const; - Const *asConst() { return as(); } - String *asString() { return as(); } - RegExp *asRegExp() { return as(); } - Name *asName() { return as(); } - Temp *asTemp() { return as(); } - ArgLocal *asArgLocal() { return as(); } - Closure *asClosure() { return as(); } - Convert *asConvert() { return as(); } - Unop *asUnop() { return as(); } - Binop *asBinop() { return as(); } - Call *asCall() { return as(); } - New *asNew() { return as(); } - Subscript *asSubscript() { return as(); } - Member *asMember() { return as(); } + Const *asConst(); + String *asString(); + RegExp *asRegExp(); + Name *asName(); + Temp *asTemp(); + ArgLocal *asArgLocal(); + Closure *asClosure(); + Convert *asConvert(); + Unop *asUnop(); + Binop *asBinop(); + Call *asCall(); + New *asNew(); + Subscript *asSubscript(); + Member *asMember(); }; #define EXPR_VISIT_ALL_KINDS(e) \ @@ -773,12 +773,12 @@ struct Stmt { Stmt *asTerminator(); - Exp *asExp() { return as(); } - Move *asMove() { return as(); } - Jump *asJump() { return as(); } - CJump *asCJump() { return as(); } - Ret *asRet() { return as(); } - Phi *asPhi() { return as(); } + Exp *asExp(); + Move *asMove(); + Jump *asJump(); + CJump *asCJump(); + Ret *asRet(); + Phi *asPhi(); int id() const { return _id; } @@ -1720,6 +1720,28 @@ inline Stmt *BasicBlock::RET(Expr *expr) return s; } +inline Const *Expr::asConst() { return as(); } +inline String *Expr::asString() { return as(); } +inline RegExp *Expr::asRegExp() { return as(); } +inline Name *Expr::asName() { return as(); } +inline Temp *Expr::asTemp() { return as(); } +inline ArgLocal *Expr::asArgLocal() { return as(); } +inline Closure *Expr::asClosure() { return as(); } +inline Convert *Expr::asConvert() { return as(); } +inline Unop *Expr::asUnop() { return as(); } +inline Binop *Expr::asBinop() { return as(); } +inline Call *Expr::asCall() { return as(); } +inline New *Expr::asNew() { return as(); } +inline Subscript *Expr::asSubscript() { return as(); } +inline Member *Expr::asMember() { return as(); } + +inline Exp *Stmt::asExp() { return as(); } +inline Move *Stmt::asMove() { return as(); } +inline Jump *Stmt::asJump() { return as(); } +inline CJump *Stmt::asCJump() { return as(); } +inline Ret *Stmt::asRet() { return as(); } +inline Phi *Stmt::asPhi() { return as(); } + } // end of namespace IR } // end of namespace QV4 -- cgit v1.2.3