diff options
author | Tristan Gingold <tgingold@free.fr> | 2017-09-23 08:39:50 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2017-09-25 18:32:45 +0200 |
commit | 8f43c1a9ce8c7660bf1bca6634c752e0a9ba3b3e (patch) | |
tree | b0b558c93464430497cdc11c85898083577dfcb9 /src | |
parent | aefc9a8fdfffab2fb32194263e7f4811422b4a56 (diff) | |
download | ghdl-8f43c1a9ce8c7660bf1bca6634c752e0a9ba3b3e.tar.gz ghdl-8f43c1a9ce8c7660bf1bca6634c752e0a9ba3b3e.tar.bz2 ghdl-8f43c1a9ce8c7660bf1bca6634c752e0a9ba3b3e.zip |
Make interfaces of implicitly defined subprograms visible.
Diffstat (limited to 'src')
-rw-r--r-- | src/vhdl/sem_decls.adb | 12 | ||||
-rw-r--r-- | src/vhdl/std_package.adb | 3 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/vhdl/sem_decls.adb b/src/vhdl/sem_decls.adb index 8b22bf25d..a83059109 100644 --- a/src/vhdl/sem_decls.adb +++ b/src/vhdl/sem_decls.adb @@ -626,6 +626,7 @@ package body Sem_Decls is Set_Type (Inter, Std_Package.File_Open_Status_Type_Definition); Set_Mode (Inter, Iir_Out_Mode); + Set_Visible_Flag (Inter, True); Append (Last_Interface, Proc, Inter); end case; -- File F : FT @@ -634,6 +635,7 @@ package body Sem_Decls is Set_Identifier (Inter, Std_Names.Name_F); Set_Type (Inter, Type_Definition); Set_Mode (Inter, Iir_Inout_Mode); + Set_Visible_Flag (Inter, True); Append (Last_Interface, Proc, Inter); -- External_Name : in STRING Inter := Create_Iir (Iir_Kind_Interface_Constant_Declaration); @@ -641,6 +643,7 @@ package body Sem_Decls is Set_Identifier (Inter, Std_Names.Name_External_Name); Set_Type (Inter, Std_Package.String_Type_Definition); Set_Mode (Inter, Iir_In_Mode); + Set_Visible_Flag (Inter, True); Append (Last_Interface, Proc, Inter); -- Open_Kind : in File_Open_Kind := Read_Mode. Inter := Create_Iir (Iir_Kind_Interface_Constant_Declaration); @@ -651,6 +654,7 @@ package body Sem_Decls is Set_Default_Value (Inter, Build_Simple_Name (Std_Package.File_Open_Kind_Read_Mode, Loc)); + Set_Visible_Flag (Inter, True); Append (Last_Interface, Proc, Inter); Compute_Subprogram_Hash (Proc); -- Add it to the list. @@ -671,6 +675,7 @@ package body Sem_Decls is Set_Location (Inter, Loc); Set_Type (Inter, Type_Definition); Set_Mode (Inter, Iir_Inout_Mode); + Set_Visible_Flag (Inter, True); Append (Last_Interface, Proc, Inter); Compute_Subprogram_Hash (Proc); -- Add it to the list. @@ -696,6 +701,7 @@ package body Sem_Decls is Set_Location (Inter, Loc); Set_Type (Inter, Type_Definition); Set_Mode (Inter, Iir_In_Mode); + Set_Visible_Flag (Inter, True); Append (Last_Interface, Proc, Inter); Inter := Create_Iir (Iir_Kind_Interface_Variable_Declaration); Set_Identifier (Inter, Std_Names.Name_Value); @@ -703,6 +709,7 @@ package body Sem_Decls is Set_Subtype_Indication (Inter, Build_Simple_Name (Decl, Loc)); Set_Type (Inter, Type_Mark_Type); Set_Mode (Inter, Iir_Out_Mode); + Set_Visible_Flag (Inter, True); Append (Last_Interface, Proc, Inter); if Get_Kind (Type_Mark_Type) in Iir_Kinds_Array_Type_Definition and then Get_Constraint_State (Type_Mark_Type) /= Fully_Constrained @@ -712,6 +719,7 @@ package body Sem_Decls is Set_Location (Inter, Loc); Set_Type (Inter, Std_Package.Natural_Subtype_Definition); Set_Mode (Inter, Iir_Out_Mode); + Set_Visible_Flag (Inter, True); Append (Last_Interface, Proc, Inter); Set_Implicit_Definition (Proc, Iir_Predefined_Read_Length); else @@ -736,6 +744,7 @@ package body Sem_Decls is Set_Mode (Inter, Iir_Out_Mode); Set_Name_Staticness (Inter, Locally); Set_Expr_Staticness (Inter, None); + Set_Visible_Flag (Inter, True); Append (Last_Interface, Proc, Inter); Inter := Create_Iir (Iir_Kind_Interface_Constant_Declaration); Set_Identifier (Inter, Std_Names.Name_Value); @@ -743,6 +752,7 @@ package body Sem_Decls is Set_Subtype_Indication (Inter, Build_Simple_Name (Decl, Loc)); Set_Type (Inter, Type_Mark_Type); Set_Mode (Inter, Iir_In_Mode); + Set_Visible_Flag (Inter, True); Append (Last_Interface, Proc, Inter); Set_Implicit_Definition (Proc, Iir_Predefined_Write); Compute_Subprogram_Hash (Proc); @@ -764,6 +774,7 @@ package body Sem_Decls is Set_Type (Inter, Type_Definition); Set_Name_Staticness (Inter, Locally); Set_Expr_Staticness (Inter, None); + Set_Visible_Flag (Inter, True); Append (Last_Interface, Proc, Inter); Set_Implicit_Definition (Proc, Iir_Predefined_Flush); Compute_Subprogram_Hash (Proc); @@ -782,6 +793,7 @@ package body Sem_Decls is Set_Location (Inter, Loc); Set_Type (Inter, Type_Definition); Set_Mode (Inter, Iir_In_Mode); + Set_Visible_Flag (Inter, True); Append (Last_Interface, Func, Inter); Set_Return_Type (Func, Std_Package.Boolean_Type_Definition); Set_Implicit_Definition (Func, Iir_Predefined_Endfile); diff --git a/src/vhdl/std_package.adb b/src/vhdl/std_package.adb index 0a6a847bf..63fb46286 100644 --- a/src/vhdl/std_package.adb +++ b/src/vhdl/std_package.adb @@ -339,6 +339,7 @@ package body Std_Package is Set_Identifier (Inter, Std_Names.Name_Value); Set_Type (Inter, Inter_Type); Set_Mode (Inter, Iir_In_Mode); + Set_Visible_Flag (Inter, True); Set_Interface_Declaration_Chain (Decl, Inter); if Inter2_Id /= Null_Identifier then @@ -346,6 +347,7 @@ package body Std_Package is Set_Identifier (Inter2, Inter2_Id); Set_Type (Inter2, Inter2_Type); Set_Mode (Inter2, Iir_In_Mode); + Set_Visible_Flag (Inter2, True); Set_Chain (Inter, Inter2); end if; @@ -371,6 +373,7 @@ package body Std_Package is Set_Identifier (Inter, Std_Names.Name_S); Set_Type (Inter, Inter_Type); Set_Mode (Inter, Iir_In_Mode); + Set_Visible_Flag (Inter, True); Set_Interface_Declaration_Chain (Decl, Inter); Sem.Compute_Subprogram_Hash (Decl); |