From 301584eaf540c982676f520d662b473e59890584 Mon Sep 17 00:00:00 2001 From: gingold Date: Sat, 18 Nov 2006 20:33:16 +0000 Subject: SEH handled Bug fixes --- sem_stmts.adb | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'sem_stmts.adb') diff --git a/sem_stmts.adb b/sem_stmts.adb index 0bda7f117..555bfbf39 100644 --- a/sem_stmts.adb +++ b/sem_stmts.adb @@ -351,7 +351,8 @@ package body Sem_Stmts is Error_Msg_Sem ("implicit GUARD signal cannot be assigned", Stmt); return; when others => - Error_Msg_Sem ("target is not a signal", Stmt); + Error_Msg_Sem ("target (" & Disp_Node (Get_Base_Name (Target)) + & ") is not a signal", Stmt); return; end case; if Get_Name_Staticness (Target_Object) < Staticness then @@ -461,14 +462,18 @@ package body Sem_Stmts is begin Ok := True; -- Find the signal. - Target := Get_Target (Stmt); - Target := Sem_Expression (Target, Sig_Type); - if Target /= Null_Iir then - Set_Target (Stmt, Target); - Check_Target (Stmt, Target); - Sem_Types.Set_Type_Has_Signal (Get_Type (Target)); - else + if Sig_Type = Null_Iir then Ok := False; + else + Target := Get_Target (Stmt); + Target := Sem_Expression (Target, Sig_Type); + if Target /= Null_Iir then + Set_Target (Stmt, Target); + Check_Target (Stmt, Target); + Sem_Types.Set_Type_Has_Signal (Get_Type (Target)); + else + Ok := False; + end if; end if; Expr := Get_Reject_Time_Expression (Stmt); -- cgit v1.2.3