aboutsummaryrefslogtreecommitdiffstats
path: root/sem_names.ads
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2014-06-28 03:47:31 +0200
committerTristan Gingold <tgingold@free.fr>2014-06-28 03:47:31 +0200
commitcde6aede1c8851fa0b64e548c5b9a391c1d6af8a (patch)
tree2f06ba4433b24d32e2c0dec7de3af2b06483af70 /sem_names.ads
parent218d1abbe771abb57a91f17eb4ce9395df86ad67 (diff)
downloadghdl-cde6aede1c8851fa0b64e548c5b9a391c1d6af8a.tar.gz
ghdl-cde6aede1c8851fa0b64e548c5b9a391c1d6af8a.tar.bz2
ghdl-cde6aede1c8851fa0b64e548c5b9a391c1d6af8a.zip
Resolve expression in variable assignment when target is an aggregate.
Diffstat (limited to 'sem_names.ads')
-rw-r--r--sem_names.ads16
1 files changed, 14 insertions, 2 deletions
diff --git a/sem_names.ads b/sem_names.ads
index 8e9ffd0ba..75db2fc17 100644
--- a/sem_names.ads
+++ b/sem_names.ads
@@ -64,20 +64,32 @@ package Sem_Names is
function Is_Overload_List (An_Iir: Iir) return Boolean;
pragma Inline (Is_Overload_List);
- -- Create an overload list.
- -- must be destroyed with free_iir.
+ -- Create an overload list, that must be destroyed by Destroy_Overload_List.
function Get_Overload_List return Iir_Overload_List;
pragma Inline (Get_Overload_List);
+
function Create_Overload_List (List : Iir_List) return Iir_Overload_List;
pragma Inline (Create_Overload_List);
+ -- Free the list node (and the list itself).
+ procedure Free_Overload_List (N : in out Iir_Overload_List);
+ pragma Unreferenced (Free_Overload_List);
+
+ -- Display an error message if the overload resolution for EXPR find more
+ -- than one interpretation.
procedure Error_Overload (Expr: Iir);
+ -- Disp the overload list LIST.
procedure Disp_Overload_List (List : Iir_List; Loc : Iir);
-- Convert a list to either Null_Iir, an element or an overload list.
function Simplify_Overload_List (List : Iir_List) return Iir;
+ -- Add new interpretation DECL to RES.
+ -- Create an overload_list if necessary.
+ -- Before the first call, RES should be set to NULL_IIR.
+ procedure Add_Result (Res : in out Iir; Decl : Iir);
+
-- Return TRUE iff TYPE1 and TYPE2 are closely related.
function Are_Types_Closely_Related (Type1, Type2 : Iir) return Boolean;