diff --git a/PExpr.cc b/PExpr.cc index ff67da5e0..9038db959 100644 --- a/PExpr.cc +++ b/PExpr.cc @@ -142,6 +142,11 @@ PECastSize::~PECastSize() { } +bool PECastSize::has_aa_term(Design *des, NetScope *scope) const +{ + return base_->has_aa_term(des, scope); +} + PECastType::PECastType(data_type_t*t, PExpr*b) : target_(t), base_(b) { @@ -151,12 +156,22 @@ PECastType::~PECastType() { } +bool PECastType::has_aa_term(Design *des, NetScope *scope) const +{ + return base_->has_aa_term(des, scope); +} + PECastSign::PECastSign(bool signed_flag, PExpr *base) : base_(base) { signed_flag_ = signed_flag; } +bool PECastSign::has_aa_term(Design *des, NetScope *scope) const +{ + return base_->has_aa_term(des, scope); +} + PEBComp::PEBComp(char op, PExpr*l, PExpr*r) : PEBinary(op, l, r) { diff --git a/PExpr.h b/PExpr.h index f84e7d290..c765bec36 100644 --- a/PExpr.h +++ b/PExpr.h @@ -972,6 +972,8 @@ class PECastSize : public PExpr { unsigned expr_wid, unsigned flags) const; + virtual bool has_aa_term(Design *des, NetScope *scope) const; + virtual unsigned test_width(Design*des, NetScope*scope, width_mode_t&mode); @@ -997,6 +999,8 @@ class PECastType : public PExpr { virtual NetExpr*elaborate_expr(Design*des, NetScope*scope, unsigned expr_wid, unsigned flags) const; + virtual bool has_aa_term(Design *des, NetScope *scope) const; + virtual unsigned test_width(Design*des, NetScope*scope, width_mode_t&mode); @@ -1020,6 +1024,8 @@ class PECastSign : public PExpr { NetExpr* elaborate_expr(Design *des, NetScope *scope, unsigned expr_wid, unsigned flags) const; + virtual bool has_aa_term(Design *des, NetScope *scope) const; + unsigned test_width(Design *des, NetScope *scope, width_mode_t &mode); private: