From 90d9debe816ec504a66a085c588d2d6201010e93 Mon Sep 17 00:00:00 2001 From: Cary R Date: Mon, 18 May 2009 14:08:09 -0700 Subject: [PATCH] Display and error for hierarchical references in a parameter r-value expr. Display and error message when the user uses a hierarchical reference in a parameter r-value expression. --- elab_pexpr.cc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/elab_pexpr.cc b/elab_pexpr.cc index b7e243341..59849ee37 100644 --- a/elab_pexpr.cc +++ b/elab_pexpr.cc @@ -207,6 +207,14 @@ NetExpr*PEIdent::elaborate_pexpr(Design*des, NetScope*scope) const name_component_t name_tail = path_.back(); oldpath.pop_back(); + if (path_.size() > 1) { + cerr << get_fileline() << ": error: parameter r-value expression " + "does not support hierarchical references `" << path_ + << "`." << endl; + des->errors += 1; + return 0; + } + NetScope*pscope = scope; if (path_.size() > 0) { list tmp = eval_scope_path(des, scope, oldpath); @@ -229,8 +237,9 @@ NetExpr*PEIdent::elaborate_pexpr(Design*des, NetScope*scope) const ivl_assert(*this, pscope); } if (ex == 0) { - cerr << get_fileline() << ": error: identifier ``" << name_tail.name << - "'' is not a parameter in "<< scope_path(scope)<< "." << endl; + cerr << get_fileline() << ": error: identifier `" + << name_tail.name << "` is not a parameter in " + << scope_path(scope)<< "." << endl; des->errors += 1; return 0; }