From db0dacf3b4a07f26c317d7cda0c6f8882e511f88 Mon Sep 17 00:00:00 2001 From: gingold Date: Sat, 6 Sep 2008 03:24:23 +0000 Subject: New feature: all-sensitized processes (for vhdl 2008) --- sem_stmts.adb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'sem_stmts.adb') diff --git a/sem_stmts.adb b/sem_stmts.adb index ab0979afe..c5ec80bb9 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; -- cgit v1.2.3