aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/iirs_walk.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/iirs_walk.adb')
-rw-r--r--src/vhdl/iirs_walk.adb9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/vhdl/iirs_walk.adb b/src/vhdl/iirs_walk.adb
index 17e35131f..80f825f68 100644
--- a/src/vhdl/iirs_walk.adb
+++ b/src/vhdl/iirs_walk.adb
@@ -16,6 +16,8 @@
-- Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-- 02111-1307, USA.
+with Iirs_Utils; use Iirs_Utils;
+
package body Iirs_Walk is
function Walk_Chain (Chain : Iir; Cb : Walk_Cb) return Walk_Status
is
@@ -98,12 +100,13 @@ package body Iirs_Walk is
function Walk_Assignment_Target (Target : Iir; Cb : Walk_Cb)
return Walk_Status
is
+ Targ : constant Iir := Strip_Reference_Name (Target);
Chain : Iir;
Status : Walk_Status := Walk_Continue;
begin
- case Get_Kind (Target) is
+ case Get_Kind (Targ) is
when Iir_Kind_Aggregate =>
- Chain := Get_Association_Choices_Chain (Target);
+ Chain := Get_Association_Choices_Chain (Targ);
while Chain /= Null_Iir loop
Status :=
Walk_Assignment_Target (Get_Associated_Expr (Chain), Cb);
@@ -111,7 +114,7 @@ package body Iirs_Walk is
Chain := Get_Chain (Chain);
end loop;
when others =>
- Status := Cb.all (Target);
+ Status := Cb.all (Targ);
end case;
return Status;
end Walk_Assignment_Target;