summaryrefslogtreecommitdiff
path: root/sem_stmts.adb
diff options
context:
space:
mode:
authorgingold2008-09-06 03:24:23 +0000
committergingold2008-09-06 03:24:23 +0000
commitdb0dacf3b4a07f26c317d7cda0c6f8882e511f88 (patch)
tree5a4e45f543f458deba660baed7d0aacfe2751322 /sem_stmts.adb
parentb42e36e23f23a0d27e7b08d6cb4461237720de3b (diff)
downloadghdl-db0dacf3b4a07f26c317d7cda0c6f8882e511f88.tar.gz
ghdl-db0dacf3b4a07f26c317d7cda0c6f8882e511f88.tar.bz2
ghdl-db0dacf3b4a07f26c317d7cda0c6f8882e511f88.zip
New feature: all-sensitized processes (for vhdl 2008)
Diffstat (limited to 'sem_stmts.adb')
-rw-r--r--sem_stmts.adb11
1 files changed, 9 insertions, 2 deletions
diff --git a/sem_stmts.adb b/sem_stmts.adb
index ab0979a..c5ec80b 100644
--- a/sem_stmts.adb
+++ b/sem_stmts.adb
@@ -12,7 +12,7 @@
-- for more details.
--
-- You should have received a copy of the GNU General Public License
--- along with GCC; see the file COPYING. If not, write to the Free
+-- along with GHDL; see the file COPYING. If not, write to the Free
-- Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-- 02111-1307, USA.
with Errorout; use Errorout;
@@ -819,7 +819,7 @@ package body Sem_Stmts is
if not Check_Odcat_Expression (Get_Prefix (Expr)) then
return False;
end if;
- -- GHDL: I don't understand why the indexsing expressions
+ -- GHDL: I don't understand why the indexing expressions
-- must be locally static. So I don't check this in 93c.
if Flags.Vhdl_Std /= Vhdl_93c
and then
@@ -954,6 +954,10 @@ package body Sem_Stmts is
Res: Iir;
Prefix : Iir;
begin
+ if List = Iir_List_All then
+ return;
+ end if;
+
for I in Natural loop
-- El is an iir_identifier.
El := Get_Nth_Element (List, I);
@@ -1511,6 +1515,9 @@ package body Sem_Stmts is
if Get_Kind (Proc) = Iir_Kind_Sensitized_Process_Statement
and then Get_Callees_List (Proc) /= Null_Iir_List
then
+ -- Check there is no wait statement in subprograms called.
+ -- Also in the case of all-sensitized process, check that package
+ -- subprograms don't read signals.
Sem.Add_Analysis_Checks_List (Proc);
end if;
end Sem_Process_Statement;