Generate ISO C for b_gnatb.c

Matt Kraai kraai@alumni.cmu.edu
Thu Jun 5 07:12:00 GMT 2003


Howdy,

I have committed the following patch.  It makes bindgen.adb
generate ISO C for b_gnatb.c.  It was bootstrapped on
powerpc-unknown-linux-gnu.

-- 
Matt Kraai <kraai@alumni.cmu.edu>
Debian GNU/Linux Peon

	* bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
	(Gen_Main_C, Gen_Output_File_C): Generate ISO C.

Index: gcc/ada/bindgen.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/bindgen.adb,v
retrieving revision 1.10
diff -3 -c -p -r1.10 bindgen.adb
*** gcc/ada/bindgen.adb	24 Apr 2003 17:53:58 -0000	1.10
--- gcc/ada/bindgen.adb	4 Jun 2003 05:24:49 -0000
*************** package body Bindgen is
*** 232,238 ****
  
     procedure Gen_Adafinal_C is
     begin
!       WBI ("void " & Ada_Final_Name.all & " () {");
        WBI ("   system__standard_library__adafinal ();");
        WBI ("}");
        WBI ("");
--- 232,239 ----
  
     procedure Gen_Adafinal_C is
     begin
!       WBI ("void " & Ada_Final_Name.all & " (void)");
!       WBI ("{");
        WBI ("   system__standard_library__adafinal ();");
        WBI ("}");
        WBI ("");
*************** package body Bindgen is
*** 472,478 ****
        Main_Priority : Int renames ALIs.Table (ALIs.First).Main_Priority;
  
     begin
!       WBI ("void " & Ada_Init_Name.all & " ()");
        WBI ("{");
  
        --  Generate externals for elaboration entities
--- 473,479 ----
        Main_Priority : Int renames ALIs.Table (ALIs.First).Main_Priority;
  
     begin
!       WBI ("void " & Ada_Init_Name.all & " (void)");
        WBI ("{");
  
        --  Generate externals for elaboration entities
*************** package body Bindgen is
*** 821,827 ****
              Set_Unit_Name;
              Set_String ("___elab");
              Set_Char (Name_Buffer (Name_Len)); -- 's' or 'b' for spec/body
!             Set_String (" PARAMS ((void));");
              Write_Statement_Buffer;
           end if;
  
--- 822,828 ----
              Set_Unit_Name;
              Set_String ("___elab");
              Set_Char (Name_Buffer (Name_Len)); -- 's' or 'b' for spec/body
!             Set_String (" (void);");
              Write_Statement_Buffer;
           end if;
  
*************** package body Bindgen is
*** 1340,1346 ****
        --  Normal case with command line arguments present
  
        else
!          Set_String (" (argc, argv, envp)");
        end if;
  
        Write_Statement_Buffer;
--- 1341,1347 ----
        --  Normal case with command line arguments present
  
        else
!          Set_String (" (int argc, char **argv, char **envp)");
        end if;
  
        Write_Statement_Buffer;
*************** package body Bindgen is
*** 1357,1365 ****
        --  Normal case of arguments present
  
        else
-          WBI ("    int argc;");
-          WBI ("    char **argv;");
-          WBI ("    char **envp;");
           WBI ("{");
  
           --  Generate a reference to __gnat_ada_main_program_name. This symbol
--- 1358,1363 ----
*************** package body Bindgen is
*** 1984,2013 ****
  
        Resolve_Binder_Options;
  
!       WBI ("#ifdef __STDC__");
!       WBI ("#define PARAMS(paramlist) paramlist");
!       WBI ("#else");
!       WBI ("#define PARAMS(paramlist) ()");
!       WBI ("#endif");
!       WBI ("");
! 
!       WBI ("extern void __gnat_set_globals ");
!       WBI (" PARAMS ((int, int, int, int, int, int, const char *,");
!       WBI ("          int, int, int));");
!       WBI ("extern void " & Ada_Final_Name.all & " PARAMS ((void));");
!       WBI ("extern void " & Ada_Init_Name.all & " PARAMS ((void));");
  
!       WBI ("extern void system__standard_library__adafinal PARAMS ((void));");
  
        if not No_Main_Subprogram then
!          WBI ("extern int main PARAMS ((int, char **, char **));");
           if Hostparm.OpenVMS then
!             WBI ("extern void __posix_exit PARAMS ((int));");
           else
!             WBI ("extern void exit PARAMS ((int));");
           end if;
  
!          WBI ("extern void __gnat_break_start PARAMS ((void));");
           Set_String ("extern ");
  
           if ALIs.Table (ALIs.First).Main_Program = Proc then
--- 1982,2003 ----
  
        Resolve_Binder_Options;
  
!       WBI ("extern void __gnat_set_globals (int, int, int, int, int, int,");
!       WBI ("                                const char *, int, int, int);");
!       WBI ("extern void " & Ada_Final_Name.all & " (void);");
!       WBI ("extern void " & Ada_Init_Name.all & " (void);");
  
!       WBI ("extern void system__standard_library__adafinal (void);");
  
        if not No_Main_Subprogram then
!          WBI ("extern int main (int, char **, char **);");
           if Hostparm.OpenVMS then
!             WBI ("extern void __posix_exit (int);");
           else
!             WBI ("extern void exit (int);");
           end if;
  
!          WBI ("extern void __gnat_break_start (void);");
           Set_String ("extern ");
  
           if ALIs.Table (ALIs.First).Main_Program = Proc then
*************** package body Bindgen is
*** 2018,2031 ****
  
           Get_Name_String (Units.Table (First_Unit_Entry).Uname);
           Set_Main_Program_Name;
!          Set_String (" PARAMS ((void));");
           Write_Statement_Buffer;
        end if;
  
        if not No_Run_Time_Specified then
!          WBI ("extern void __gnat_initialize PARAMS ((void));");
!          WBI ("extern void __gnat_finalize PARAMS ((void));");
!          WBI ("extern void __gnat_install_handler PARAMS ((void));");
        end if;
  
        WBI ("");
--- 2008,2021 ----
  
           Get_Name_String (Units.Table (First_Unit_Entry).Uname);
           Set_Main_Program_Name;
!          Set_String (" (void);");
           Write_Statement_Buffer;
        end if;
  
        if not No_Run_Time_Specified then
!          WBI ("extern void __gnat_initialize (void);");
!          WBI ("extern void __gnat_finalize (void);");
!          WBI ("extern void __gnat_install_handler (void);");
        end if;
  
        WBI ("");



More information about the Gcc-patches mailing list