Skip to content

Commit bcdabe4

Browse files
LukasVikLarsAsplund
authored andcommitted
Fix "prefix of array attribute must be an object name"
1 parent af7b89d commit bcdabe4

3 files changed

Lines changed: 32 additions & 16 deletions

File tree

vunit/vhdl/data_types/src/codec-2008p.vhd

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ package body codec_2008p_pkg is
110110
function decode (
111111
constant code : string)
112112
return boolean_vector is
113-
variable ret_val : boolean_vector(get_range(code)'range) := (others => false);
113+
constant ret_range : range_t := get_range(code);
114+
variable ret_val : boolean_vector(ret_range'range) := (others => false);
114115
variable index : positive := code'left;
115116
begin
116117
decode(code, index, ret_val);
@@ -136,7 +137,8 @@ package body codec_2008p_pkg is
136137
function decode (
137138
constant code : string)
138139
return integer_vector is
139-
variable ret_val : integer_vector(get_range(code)'range) := (others => integer'left);
140+
constant ret_range : range_t := get_range(code);
141+
variable ret_val : integer_vector(ret_range'range) := (others => integer'left);
140142
variable index : positive := code'left;
141143
begin
142144
decode(code, index, ret_val);
@@ -162,7 +164,8 @@ package body codec_2008p_pkg is
162164
function decode (
163165
constant code : string)
164166
return real_vector is
165-
variable ret_val : real_vector(get_range(code)'range) := (others => real'left);
167+
constant ret_range : range_t := get_range(code);
168+
variable ret_val : real_vector(ret_range'range) := (others => real'left);
166169
variable index : positive := code'left;
167170
begin
168171
decode(code, index, ret_val);
@@ -188,7 +191,8 @@ package body codec_2008p_pkg is
188191
function decode (
189192
constant code : string)
190193
return time_vector is
191-
variable ret_val : time_vector(get_range(code)'range) := (others => time'left);
194+
constant ret_range : range_t := get_range(code);
195+
variable ret_val : time_vector(ret_range'range) := (others => time'left);
192196
variable index : positive := code'left;
193197
begin
194198
decode(code, index, ret_val);
@@ -206,7 +210,8 @@ package body codec_2008p_pkg is
206210
function decode (
207211
constant code : string)
208212
return ufixed is
209-
variable ret_val : ufixed(get_range(code)'range);
213+
constant ret_range : range_t := get_range(code);
214+
variable ret_val : ufixed(ret_range'range);
210215
variable index : positive := code'left;
211216
begin
212217
decode(code, index, ret_val);
@@ -224,7 +229,8 @@ package body codec_2008p_pkg is
224229
function decode (
225230
constant code : string)
226231
return sfixed is
227-
variable ret_val : sfixed(get_range(code)'range);
232+
constant ret_range : range_t := get_range(code);
233+
variable ret_val : sfixed(ret_range'range);
228234
variable index : positive := code'left;
229235
begin
230236
decode(code, index, ret_val);
@@ -242,7 +248,8 @@ package body codec_2008p_pkg is
242248
function decode (
243249
constant code : string)
244250
return float is
245-
variable ret_val : float(get_range(code)'range);
251+
constant ret_range : range_t := get_range(code);
252+
variable ret_val : float(ret_range'range);
246253
variable index : positive := code'left;
247254
begin
248255
decode(code, index, ret_val);

vunit/vhdl/data_types/src/codec.vhd

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,8 @@ package body codec_pkg is
517517
function decode (
518518
constant code : string)
519519
return string is
520-
variable ret_val : string(get_range(code)'range) := (others => NUL);
520+
constant ret_range : range_t := get_range(code);
521+
variable ret_val : string(ret_range'range) := (others => NUL);
521522
variable index : positive := code'left;
522523
begin
523524
decode(code, index, ret_val);
@@ -542,7 +543,8 @@ package body codec_pkg is
542543
function decode (
543544
constant code : string)
544545
return bit_vector is
545-
variable ret_val : bit_vector(get_range(code)'range) := (others => '0');
546+
constant ret_range : range_t := get_range(code);
547+
variable ret_val : bit_vector(ret_range'range) := (others => '0');
546548
variable index : positive := code'left;
547549
begin
548550
decode(code, index, ret_val);
@@ -560,7 +562,8 @@ package body codec_pkg is
560562
function decode (
561563
constant code : string)
562564
return std_ulogic_vector is
563-
variable ret_val : std_ulogic_vector(get_range(code)'range) := (others => 'U');
565+
constant ret_range : range_t := get_range(code);
566+
variable ret_val : std_ulogic_vector(ret_range'range) := (others => 'U');
564567
variable index : positive := code'left;
565568
begin
566569
decode(code, index, ret_val);
@@ -614,7 +617,8 @@ package body codec_pkg is
614617
function decode (
615618
constant code : string)
616619
return ieee.numeric_bit.unsigned is
617-
variable ret_val : ieee.numeric_bit.unsigned(get_range(code)'range) := (others => '0');
620+
constant ret_range : range_t := get_range(code);
621+
variable ret_val : ieee.numeric_bit.unsigned(ret_range'range) := (others => '0');
618622
variable index : positive := code'left;
619623
begin
620624
decode(code, index, ret_val);
@@ -632,7 +636,8 @@ package body codec_pkg is
632636
function decode (
633637
constant code : string)
634638
return ieee.numeric_bit.signed is
635-
variable ret_val : ieee.numeric_bit.signed(get_range(code)'range) := (others => '0');
639+
constant ret_range : range_t := get_range(code);
640+
variable ret_val : ieee.numeric_bit.signed(ret_range'range) := (others => '0');
636641
variable index : positive := code'left;
637642
begin
638643
decode(code, index, ret_val);
@@ -650,7 +655,8 @@ package body codec_pkg is
650655
function decode (
651656
constant code : string)
652657
return ieee.numeric_std.unsigned is
653-
variable ret_val : ieee.numeric_std.unsigned(get_range(code)'range) := (others => 'U');
658+
constant ret_range : range_t := get_range(code);
659+
variable ret_val : ieee.numeric_std.unsigned(ret_range'range) := (others => 'U');
654660
variable index : positive := code'left;
655661
begin
656662
decode(code, index, ret_val);
@@ -668,7 +674,8 @@ package body codec_pkg is
668674
function decode (
669675
constant code : string)
670676
return ieee.numeric_std.signed is
671-
variable ret_val : ieee.numeric_std.signed(get_range(code)'range) := (others => 'U');
677+
constant ret_range : range_t := get_range(code);
678+
variable ret_val : ieee.numeric_std.signed(ret_range'range) := (others => 'U');
672679
variable index : positive := code'left;
673680
begin
674681
decode(code, index, ret_val);

vunit/vhdl/logging/src/logger_pkg-body.vhd

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,13 @@ package body logger_pkg is
9292
procedure p_set_log_handlers(logger : logger_t;
9393
log_handlers : log_handler_vec_t) is
9494
constant handlers : integer_vector_ptr_t := to_integer_vector_ptr(get(logger.p_data, handlers_idx));
95+
constant full_logger_name : string := get_full_name(logger);
9596
begin
9697
resize(handlers, log_handlers'length);
9798

9899
for i in log_handlers'range loop
99100
set(handlers, i, to_integer(log_handlers(i).p_data));
100-
update_max_logger_name_length(log_handlers(i), get_full_name(logger)'length);
101+
update_max_logger_name_length(log_handlers(i), full_logger_name'length);
101102
end loop;
102103
end;
103104

@@ -262,11 +263,12 @@ package body logger_pkg is
262263
end;
263264

264265
impure function get_max_name_length(logger : logger_t) return natural is
266+
constant full_name : string := get_full_name(logger);
265267
variable result : natural := 0;
266268
variable child_result : natural;
267269
begin
268270
if num_children(logger) = 0 then
269-
return get_full_name(logger)'length;
271+
return full_name'length;
270272
end if;
271273

272274
for i in 0 to num_children(logger)-1 loop

0 commit comments

Comments
 (0)