Skip to content

Commit

Permalink
Fix index out of bounds error message.
Browse files Browse the repository at this point in the history
When displaying an index out-of-bounds message, use the index
given in the source code, not the canonical (translated) value.
  • Loading branch information
steveicarus committed Aug 6, 2009
1 parent 88b18d4 commit 37b11e0
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions elab_net.cc
Original file line number Diff line number Diff line change
Expand Up @@ -424,6 +424,9 @@ NetNet* PEIdent::elaborate_lnet_common_(Design*des, NetScope*scope,
unsigned midx = sig->vector_width()-1, lidx = 0;
// The default word select is the first.
long widx = 0;
// The widx_val is the word select as entered in the source
// code. It's used for error messages.
long widx_val = 0;

const name_component_t&name_tail = path_.back();

Expand Down Expand Up @@ -462,8 +465,11 @@ NetNet* PEIdent::elaborate_lnet_common_(Design*des, NetScope*scope,
return 0;
}

long widx_val = tmp->value().as_long();
widx = sig->array_index_to_address(widx_val);
widx_val = tmp->value().as_long();
if (sig->array_index_is_valid(widx_val))
widx = sig->array_index_to_address(widx_val);
else
widx = -1;
delete tmp_ex;

if (debug_elaborate)
Expand Down Expand Up @@ -529,7 +535,7 @@ NetNet* PEIdent::elaborate_lnet_common_(Design*des, NetScope*scope,
if (widx < 0 || widx >= (long) sig->pin_count()) {
cerr << get_fileline() << ": warning: ignoring out of "
"bounds l-value array access "
<< sig->name() << "[" << widx << "]." << endl;
<< sig->name() << "[" << widx_val << "]." << endl;
return 0;
}

Expand Down

0 comments on commit 37b11e0

Please sign in to comment.