This changes the type of the elaboration counter from Integer to Short_Integer to avoid wasting space in the data segment. No functional changes.
Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-04 Eric Botcazou <ebotca...@adacore.com> * sem_elab.adb (Check_Internal_Call_Continue): Change the type of the elaboration counter to Standard_Short_Integer. * sem_util.adb (Build_Elaboration_Entity): Likewise. * bindgen.adb (Gen_Elab_Externals_Ada): Adjust to above change. (Gen_Elab_Externals_C): Likewise.
Index: bindgen.adb =================================================================== --- bindgen.adb (revision 177320) +++ bindgen.adb (working copy) @@ -1241,9 +1241,9 @@ case VM_Target is when No_VM | JVM_Target => - Set_String (" : Integer; pragma Import (Ada, "); + Set_String (" : Short_Integer; pragma Import (Ada, "); when CLI_Target => - Set_String (" : Integer; pragma Import (CIL, "); + Set_String (" : Short_Integer; pragma Import (CIL, "); end case; Set_String ("E"); @@ -1320,7 +1320,7 @@ (No_Run_Time_Mode and then Is_Predefined_File_Name (U.Sfile)) then - Set_String ("extern int "); + Set_String ("extern short int "); Get_Name_String (U.Uname); Set_Unit_Name; Set_String ("_E;"); Index: sem_util.adb =================================================================== --- sem_util.adb (revision 177320) +++ sem_util.adb (working copy) @@ -954,7 +954,7 @@ Name_Buffer (Name_Len + 2) := 'E'; Name_Len := Name_Len + 2; - -- Create elaboration flag + -- Create elaboration counter Elab_Ent := Make_Defining_Identifier (Loc, Chars => Name_Find); Set_Elaboration_Entity (Spec_Id, Elab_Ent); @@ -962,8 +962,10 @@ Decl := Make_Object_Declaration (Loc, Defining_Identifier => Elab_Ent, - Object_Definition => New_Occurrence_Of (Standard_Integer, Loc), - Expression => Make_Integer_Literal (Loc, Uint_0)); + Object_Definition => + New_Occurrence_Of (Standard_Short_Integer, Loc), + Expression => + Make_Integer_Literal (Loc, Uint_0)); Push_Scope (Standard_Standard); Add_Global_Declaration (Decl); Index: sem_elab.adb =================================================================== --- sem_elab.adb (revision 177320) +++ sem_elab.adb (working copy) @@ -2158,7 +2158,7 @@ Make_Object_Declaration (Loce, Defining_Identifier => Ent, Object_Definition => - New_Occurrence_Of (Standard_Integer, Loce), + New_Occurrence_Of (Standard_Short_Integer, Loce), Expression => Make_Integer_Literal (Loc, Uint_0)));