aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2018-08-24 06:43:35 +0200
committerTristan Gingold <tgingold@free.fr>2018-08-24 06:43:35 +0200
commit6e0eb7b901595fd601598cc3c7800f0bdc714d24 (patch)
treeb325c8935a523afdd47ef07946c8c4e316e3a7bb
parent76ff857489906785d9e100c67302110d68dc7c8a (diff)
downloadghdl-6e0eb7b901595fd601598cc3c7800f0bdc714d24.tar.gz
ghdl-6e0eb7b901595fd601598cc3c7800f0bdc714d24.tar.bz2
ghdl-6e0eb7b901595fd601598cc3c7800f0bdc714d24.zip
canon_extract_sensitivity: handle dereference. Fix #637
-rw-r--r--src/vhdl/canon.adb15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/vhdl/canon.adb b/src/vhdl/canon.adb
index 6c991bd0a..5d7755faf 100644
--- a/src/vhdl/canon.adb
+++ b/src/vhdl/canon.adb
@@ -145,9 +145,8 @@ package body Canon is
Add_Element (Sensitivity_List, Expr);
end if;
else
- Canon_Extract_Sensitivity (Get_Prefix (Expr),
- Sensitivity_List,
- Is_Target);
+ Canon_Extract_Sensitivity
+ (Get_Prefix (Expr), Sensitivity_List, Is_Target);
end if;
when Iir_Kind_Indexed_Name =>
@@ -158,9 +157,8 @@ package body Canon is
Add_Element (Sensitivity_List, Expr);
end if;
else
- Canon_Extract_Sensitivity (Get_Prefix (Expr),
- Sensitivity_List,
- Is_Target);
+ Canon_Extract_Sensitivity
+ (Get_Prefix (Expr), Sensitivity_List, Is_Target);
declare
Flist : constant Iir_Flist := Get_Index_List (Expr);
El : Iir;
@@ -197,6 +195,11 @@ package body Canon is
when Iir_Kind_Allocator_By_Subtype =>
null;
+ when Iir_Kind_Dereference
+ | Iir_Kind_Implicit_Dereference =>
+ Canon_Extract_Sensitivity
+ (Get_Prefix (Expr), Sensitivity_List, False);
+
when Iir_Kind_External_Variable_Name
| Iir_Kind_External_Constant_Name =>
null;