diff --git a/dup_expr.cc b/dup_expr.cc index 0832d115b..82f13255f 100644 --- a/dup_expr.cc +++ b/dup_expr.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #ifdef HAVE_CVS_IDENT -#ident "$Id: dup_expr.cc,v 1.18.2.1 2006/06/12 00:16:50 steve Exp $" +#ident "$Id: dup_expr.cc,v 1.18.2.2 2006/11/02 02:13:15 steve Exp $" #endif # include "config.h" @@ -29,6 +29,7 @@ NetEBComp* NetEBComp::dup_expr() const { NetEBComp*result = new NetEBComp(op_, left_->dup_expr(), right_->dup_expr()); + result->set_line(*this); return result; } @@ -119,6 +120,7 @@ NetEUFunc* NetEUFunc::dup_expr() const tmp = new NetEUFunc(func_, result_var_->dup_expr(), tmp_parms); assert(tmp); + tmp->set_line(*this); return tmp; } @@ -144,6 +146,9 @@ NetEVariable* NetEVariable::dup_expr() const /* * $Log: dup_expr.cc,v $ + * Revision 1.18.2.2 2006/11/02 02:13:15 steve + * Error message for condit expression not synthesized. + * * Revision 1.18.2.1 2006/06/12 00:16:50 steve * Add support for -Wunused warnings. * diff --git a/elab_expr.cc b/elab_expr.cc index 643570724..252a9b92b 100644 --- a/elab_expr.cc +++ b/elab_expr.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2003 Stephen Williams (steve@icarus.com) + * Copyright (c) 1999-2006 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #ifdef HAVE_CVS_IDENT -#ident "$Id: elab_expr.cc,v 1.91.2.1 2006/06/12 00:16:50 steve Exp $" +#ident "$Id: elab_expr.cc,v 1.91.2.2 2006/11/02 02:13:15 steve Exp $" #endif # include "config.h" @@ -387,13 +387,16 @@ NetExpr* PECallFunction::elaborate_expr(Design*des, NetScope*scope, bool) const if (NetNet*res = dscope->find_signal(dscope->basename())) { NetESignal*eres = new NetESignal(res); NetEUFunc*func = new NetEUFunc(dscope, eres, parms); + eres->set_line(*this); + func->set_line(*this); return func; } if (NetVariable*res = dscope->find_variable(dscope->basename())) { NetEVariable*eres = new NetEVariable(res); - eres->set_line(*res); NetEUFunc*func = new NetEUFunc(dscope, eres, parms); + eres->set_line(*res); + func->set_line(*this); return func; } @@ -1006,6 +1009,9 @@ NetExpr* PEUnary::elaborate_expr(Design*des, NetScope*scope, bool) const /* * $Log: elab_expr.cc,v $ + * Revision 1.91.2.2 2006/11/02 02:13:15 steve + * Error message for condit expression not synthesized. + * * Revision 1.91.2.1 2006/06/12 00:16:50 steve * Add support for -Wunused warnings. * diff --git a/synth2.cc b/synth2.cc index 4a3120657..0e157ce06 100644 --- a/synth2.cc +++ b/synth2.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #ifdef HAVE_CVS_IDENT -#ident "$Id: synth2.cc,v 1.39.2.45 2006/10/30 02:03:30 steve Exp $" +#ident "$Id: synth2.cc,v 1.39.2.46 2006/11/02 02:13:15 steve Exp $" #endif # include "config.h" @@ -1031,6 +1031,14 @@ bool NetCondit::synth_async(Design*des, NetScope*scope, bool sync_flag, } NetNet*ssig = expr_->synthesize(des); + if (ssig == 0) { + if (debug_synth) { + cerr << get_line() << ": debug: Unable to synthesize " + << "condition expression." << endl; + } + return false; + } + assert(ssig); /* Use the accumulated input net as a default input for @@ -2530,6 +2538,9 @@ void synth2(Design*des) /* * $Log: synth2.cc,v $ + * Revision 1.39.2.46 2006/11/02 02:13:15 steve + * Error message for condit expression not synthesized. + * * Revision 1.39.2.45 2006/10/30 02:03:30 steve * Detect and synthesize enables using condit false. *