Propagate file and line information in more places.

There where a few places that were not propagating the file and
line information.
This commit is contained in:
Cary R 2008-02-27 11:34:51 -08:00 committed by Stephen Williams
parent 75df8fb6bb
commit 70c5c9fe14
2 changed files with 26 additions and 9 deletions

View File

@ -24,14 +24,17 @@
NetEBComp* NetEBComp::dup_expr() const NetEBComp* NetEBComp::dup_expr() const
{ {
NetEBComp*result = new NetEBComp(op_, left_->dup_expr(), NetEBComp*tmp = new NetEBComp(op_, left_->dup_expr(),
right_->dup_expr()); right_->dup_expr());
return result; assert(tmp);
tmp->set_line(*this);
return tmp;
} }
NetEConst* NetEConst::dup_expr() const NetEConst* NetEConst::dup_expr() const
{ {
NetEConst*tmp = new NetEConst(value_); NetEConst*tmp = new NetEConst(value_);
assert(tmp);
tmp->set_line(*this); tmp->set_line(*this);
return tmp; return tmp;
} }
@ -39,6 +42,7 @@ NetEConst* NetEConst::dup_expr() const
NetEConstParam* NetEConstParam::dup_expr() const NetEConstParam* NetEConstParam::dup_expr() const
{ {
NetEConstParam*tmp = new NetEConstParam(scope_, name_, value()); NetEConstParam*tmp = new NetEConstParam(scope_, name_, value());
assert(tmp);
tmp->set_line(*this); tmp->set_line(*this);
return tmp; return tmp;
} }
@ -46,6 +50,7 @@ NetEConstParam* NetEConstParam::dup_expr() const
NetECRealParam* NetECRealParam::dup_expr() const NetECRealParam* NetECRealParam::dup_expr() const
{ {
NetECRealParam*tmp = new NetECRealParam(scope_, name_, value()); NetECRealParam*tmp = new NetECRealParam(scope_, name_, value());
assert(tmp);
tmp->set_line(*this); tmp->set_line(*this);
return tmp; return tmp;
} }
@ -64,9 +69,12 @@ NetEScope* NetEScope::dup_expr() const
NetESelect* NetESelect::dup_expr() const NetESelect* NetESelect::dup_expr() const
{ {
return new NetESelect(expr_->dup_expr(), NetESelect*tmp = new NetESelect(expr_->dup_expr(),
base_? base_->dup_expr() : 0, base_? base_->dup_expr() : 0,
expr_width()); expr_width());
assert(tmp);
tmp->set_line(*this);
return tmp;
} }
NetESFunc* NetESFunc::dup_expr() const NetESFunc* NetESFunc::dup_expr() const
@ -80,6 +88,7 @@ NetESFunc* NetESFunc::dup_expr() const
tmp->parm(idx, tmp->parm(idx)->dup_expr()); tmp->parm(idx, tmp->parm(idx)->dup_expr());
} }
tmp->set_line(*this);
return tmp; return tmp;
} }
@ -96,6 +105,8 @@ NetETernary* NetETernary::dup_expr() const
NetETernary*tmp = new NetETernary(cond_->dup_expr(), NetETernary*tmp = new NetETernary(cond_->dup_expr(),
true_val_->dup_expr(), true_val_->dup_expr(),
false_val_->dup_expr()); false_val_->dup_expr());
assert(tmp);
tmp->set_line(*this);
return tmp; return tmp;
} }
@ -112,6 +123,7 @@ NetEUFunc* NetEUFunc::dup_expr() const
tmp = new NetEUFunc(scope_, func_, result_sig_->dup_expr(), tmp_parms); tmp = new NetEUFunc(scope_, func_, result_sig_->dup_expr(), tmp_parms);
assert(tmp); assert(tmp);
tmp->set_line(*this);
return tmp; return tmp;
} }
@ -119,6 +131,7 @@ NetEUnary* NetEUnary::dup_expr() const
{ {
NetEUnary*tmp = new NetEUnary(op_, expr_->dup_expr()); NetEUnary*tmp = new NetEUnary(op_, expr_->dup_expr());
assert(tmp); assert(tmp);
tmp->set_line(*this);
return tmp; return tmp;
} }
@ -126,5 +139,6 @@ NetEUReduce* NetEUReduce::dup_expr() const
{ {
NetEUReduce*tmp = new NetEUReduce(op_, expr_->dup_expr()); NetEUReduce*tmp = new NetEUReduce(op_, expr_->dup_expr());
assert(tmp); assert(tmp);
tmp->set_line(*this);
return tmp; return tmp;
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2000-2007 Stephen Williams (steve@icarus.com) * Copyright (c) 2000-2008 Stephen Williams (steve@icarus.com)
* *
* This source code is free software; you can redistribute it * This source code is free software; you can redistribute it
* and/or modify it in source code form under the terms of the GNU * and/or modify it in source code form under the terms of the GNU
@ -187,6 +187,7 @@ NetExpr*PEIdent::elaborate_pexpr(Design*des, NetScope*scope) const
NetExpr*tmp = name_tail.index.back().msb->elaborate_pexpr(des, scope); NetExpr*tmp = name_tail.index.back().msb->elaborate_pexpr(des, scope);
if (tmp != 0) { if (tmp != 0) {
res = new NetESelect(res, tmp, 1); res = new NetESelect(res, tmp, 1);
res->set_line(*this);
} }
break; break;
} }
@ -216,7 +217,10 @@ NetETernary* PETernary::elaborate_pexpr(Design*des, NetScope*scope) const
if (c == 0) return 0; if (c == 0) return 0;
if (t == 0) return 0; if (t == 0) return 0;
if (f == 0) return 0; if (f == 0) return 0;
return new NetETernary(c, t, f);
NetETernary*tmp = new NetETernary(c, t, f);
tmp->set_line(*this);
return tmp;
} }
NetExpr*PEUnary::elaborate_pexpr (Design*des, NetScope*scope) const NetExpr*PEUnary::elaborate_pexpr (Design*des, NetScope*scope) const
@ -251,4 +255,3 @@ NetExpr*PEUnary::elaborate_pexpr (Design*des, NetScope*scope) const
} }
return tmp; return tmp;
} }