This fixes some of the remaining warnings that appear in a compiler bootstrap. The above ones are false positives of -Wmaybe-uninitialized and most are fixed by initializing the variable in case the control flow is fairly complicated; a couple of very local cases are fixed by just adding pragma Warnings.
No functional changes. Tested on x86_64-pc-linux-gnu, committed on trunk 2017-04-28 Eric Botcazou <ebotca...@adacore.com> * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): Also initialize Block_Decls variable. (Expand_Entry_Barrier): Add pragma Warnings on Func_Body variable. (Build_Dispatching_Requeue): Add pragma Warnings on Op variable. * exp_disp.adb (Expand_Interface_Actuals): Initialize Formal_DDT and Actual_DDT variables. (Expand_Interface_Thunk): Initialize Iface_Formal. (Make_DT): Initialize Size_Comp. (Make_Select_Specific_Data_Table): Initialize Decls. * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Also initialize more RPC_Receiver_* variables. (Build_To_Any_Function): Initialize Cstr_Formal. * exp_prag.adb (Expand_Pragma_Contract_Cases): Initialize Msg_Str.
Index: exp_prag.adb =================================================================== --- exp_prag.adb (revision 247299) +++ exp_prag.adb (working copy) @@ -1000,7 +1000,7 @@ Flag : Entity_Id; Flag_Decl : Node_Id; If_Stmt : Node_Id; - Msg_Str : Entity_Id; + Msg_Str : Entity_Id := Empty; Multiple_PCs : Boolean; Old_Evals : Node_Id := Empty; Others_Decl : Node_Id; Index: exp_ch9.adb =================================================================== --- exp_ch9.adb (revision 247326) +++ exp_ch9.adb (working copy) @@ -2956,7 +2956,7 @@ Ekind (Corresponding_Spec (N)) = E_Procedure; -- Indicates if N is a protected procedure body - Block_Decls : List_Id; + Block_Decls : List_Id := No_List; Try_Write : Entity_Id; Desired_Comp : Entity_Id; Decl : Node_Id; @@ -6117,6 +6117,7 @@ Cond_Id : Entity_Id; Entry_Body : Node_Id; Func_Body : Node_Id; + pragma Warnings (Off, Func_Body); -- Start of processing for Expand_Entry_Barrier @@ -9985,6 +9986,7 @@ declare Elmt : Elmt_Id; Op : Entity_Id; + pragma Warnings (Off, Op); begin Elmt := First_Elmt (Primitive_Operations (Etype (Conc_Typ))); Index: exp_disp.adb =================================================================== --- exp_disp.adb (revision 247383) +++ exp_disp.adb (working copy) @@ -1546,8 +1546,8 @@ Formal : Entity_Id; Formal_Typ : Entity_Id; Subp : Entity_Id; - Formal_DDT : Entity_Id; - Actual_DDT : Entity_Id; + Formal_DDT : Entity_Id := Empty; -- initialize to prevent warning + Actual_DDT : Entity_Id := Empty; -- initialize to prevent warning begin -- This subprogram is called directly from the semantics, so we need a @@ -1729,7 +1729,7 @@ Expr : Node_Id; Formal : Node_Id; Ftyp : Entity_Id; - Iface_Formal : Node_Id; + Iface_Formal : Node_Id := Empty; -- initialize to prevent warning New_Arg : Node_Id; Offset_To_Top : Node_Id; Target_Formal : Entity_Id; @@ -5274,7 +5274,7 @@ declare Prim_Elmt : Elmt_Id; Prim : Entity_Id; - Size_Comp : Node_Id; + Size_Comp : Node_Id := Empty; begin Prim_Elmt := First_Elmt (Primitive_Operations (Typ)); @@ -6377,7 +6377,7 @@ Loc : constant Source_Ptr := Sloc (Typ); Conc_Typ : Entity_Id; - Decls : List_Id; + Decls : List_Id := No_List; Prim : Entity_Id; Prim_Als : Entity_Id; Prim_Elmt : Elmt_Id; Index: exp_dist.adb =================================================================== --- exp_dist.adb (revision 247293) +++ exp_dist.adb (working copy) @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2016, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2017, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -1364,10 +1364,10 @@ RPC_Receiver : Entity_Id; RPC_Receiver_Statements : List_Id; RPC_Receiver_Case_Alternatives : constant List_Id := New_List; - RPC_Receiver_Elsif_Parts : List_Id; - RPC_Receiver_Request : Entity_Id; - RPC_Receiver_Subp_Id : Entity_Id; - RPC_Receiver_Subp_Index : Entity_Id; + RPC_Receiver_Elsif_Parts : List_Id := No_List; + RPC_Receiver_Request : Entity_Id := Empty; + RPC_Receiver_Subp_Id : Entity_Id := Empty; + RPC_Receiver_Subp_Index : Entity_Id := Empty; Subp_Str : String_Id; @@ -9434,7 +9434,7 @@ Stms : List_Id; Expr_Formal : Entity_Id; - Cstr_Formal : Entity_Id; + Cstr_Formal : Entity_Id := Empty; -- initialize to prevent warning Any : Entity_Id; Result_TC : Node_Id;