aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-vhdl_expr.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-08-25 04:12:17 +0200
committerTristan Gingold <tgingold@free.fr>2022-08-25 04:12:17 +0200
commitd340440584e3b60d11ec4ac88b34b3ed0dd25d5e (patch)
tree7e30e3e4f460b8b68e31640b6b8a224d61413024 /src/synth/synth-vhdl_expr.adb
parent1ac09fc1b9344b41054f1f86263f768e526a6e7f (diff)
downloadghdl-d340440584e3b60d11ec4ac88b34b3ed0dd25d5e.tar.gz
ghdl-d340440584e3b60d11ec4ac88b34b3ed0dd25d5e.tar.bz2
ghdl-d340440584e3b60d11ec4ac88b34b3ed0dd25d5e.zip
synth: handle type left/right attributes
Diffstat (limited to 'src/synth/synth-vhdl_expr.adb')
-rw-r--r--src/synth/synth-vhdl_expr.adb14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/synth/synth-vhdl_expr.adb b/src/synth/synth-vhdl_expr.adb
index 62f41d3b5..6f33ff209 100644
--- a/src/synth/synth-vhdl_expr.adb
+++ b/src/synth/synth-vhdl_expr.adb
@@ -2078,6 +2078,20 @@ package body Synth.Vhdl_Expr is
when Iir_Kind_Parenthesis_Expression =>
return Synth_Expression_With_Type
(Syn_Inst, Get_Expression (Expr), Expr_Type);
+ when Iir_Kind_Left_Type_Attribute =>
+ declare
+ T : Type_Acc;
+ begin
+ T := Synth_Type_Attribute (Syn_Inst, Expr);
+ return Create_Value_Discrete (T.Drange.Left, Expr_Type);
+ end;
+ when Iir_Kind_Right_Type_Attribute =>
+ declare
+ T : Type_Acc;
+ begin
+ T := Synth_Type_Attribute (Syn_Inst, Expr);
+ return Create_Value_Discrete (T.Drange.Right, Expr_Type);
+ end;
when Iir_Kind_Left_Array_Attribute =>
declare
B : Bound_Type;