aboutsummaryrefslogtreecommitdiffstats
path: root/sem_assocs.adb
diff options
context:
space:
mode:
authorgingold <gingold@b72b5c32-5f01-0410-b925-b5c7b92870f7>2006-08-06 06:45:40 +0000
committergingold <gingold@b72b5c32-5f01-0410-b925-b5c7b92870f7>2006-08-06 06:45:40 +0000
commit63925c8de8d3171e6b258796e4d167524691490a (patch)
treea8e7971f5889da0b7bba2cd7f9624c704d0145df /sem_assocs.adb
parent3841c37a946481815c89928ccd15b71b608aa526 (diff)
downloadghdl-63925c8de8d3171e6b258796e4d167524691490a.tar.gz
ghdl-63925c8de8d3171e6b258796e4d167524691490a.tar.bz2
ghdl-63925c8de8d3171e6b258796e4d167524691490a.zip
bugs fixed
Diffstat (limited to 'sem_assocs.adb')
-rw-r--r--sem_assocs.adb12
1 files changed, 8 insertions, 4 deletions
diff --git a/sem_assocs.adb b/sem_assocs.adb
index 3239d9247..09fc2c975 100644
--- a/sem_assocs.adb
+++ b/sem_assocs.adb
@@ -1118,6 +1118,10 @@ package body Sem_Assocs is
Res : Iir;
begin
Res_Base_Type := Get_Base_Type (Res_Type);
+ if Param_Type = Null_Iir then
+ -- In case of error.
+ return Null_Iir;
+ end if;
Param_Base_Type := Get_Base_Type (Param_Type);
if Is_Overload_List (Conv) then
List := Get_Overload_List (Conv);
@@ -1359,7 +1363,9 @@ package body Sem_Assocs is
end if;
if Res_Type = Null_Iir then
- raise Internal_Error;
+ -- In case of error, do not go farther.
+ Match := False;
+ return;
end if;
if Get_Formal (Assoc) /= Null_Iir then
@@ -1569,9 +1575,7 @@ package body Sem_Assocs is
end if;
if Finish then
Sem_Association (Assoc, Inter, True, Match);
- if not Match then
- raise Internal_Error;
- end if;
+ -- MATCH can be false du to errors.
end if;
else
-- Not found.