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/vhdl | |
| 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/vhdl')
| -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); | 
