diff options
author | Tristan Gingold <tgingold@free.fr> | 2014-06-28 03:47:31 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2014-06-28 03:47:31 +0200 |
commit | cde6aede1c8851fa0b64e548c5b9a391c1d6af8a (patch) | |
tree | 2f06ba4433b24d32e2c0dec7de3af2b06483af70 /sem_names.ads | |
parent | 218d1abbe771abb57a91f17eb4ce9395df86ad67 (diff) | |
download | ghdl-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.ads | 16 |
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; |