@@ -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);
0 commit comments