[Ada] Fix remaining warnings in compiler bootstrap #3

Arnaud Charlet charlet@adacore.com
Fri Apr 28 14:12:00 GMT 2017


This fixes some of the remaining warnings that appear in a compiler bootstrap.
The above ones are false positives of -Wmaybe-uninitialized and some are fixed
by initializing the variable in case the control flow is complicated; the rest
is fixed by just adding pragma Warnings.

No functional changes.

Tested on x86_64-pc-linux-gnu, committed on trunk

2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>

        * exp_ch3.adb (Build_Init_Statements): Likewise on Nam.
        * freeze.adb (Check_Component_Storage_Order): And on Comp_Byte_Aligned.
        * sem_aggr.adb (Resolve_Record_Aggregate): Initialize Box_Node.
        * sem_attr.adb (Loop_Entry): Initialize Encl_Loop.
        * sem_ch12.adb (Build_Operator_Wrapper): Add pragma Warnings on Expr.
        * sem_ch13.adb (Validate_Address_Clauses): Initialize Y_Alignment and
        Y_Size.
        * sem_eval.adb (Why_Not_Static): Initialize Typ.
        * sem_prag.adb (Analyze_Pragma): Add pragma Warnings on Str.

-------------- next part --------------
Index: sem_aggr.adb
===================================================================
--- sem_aggr.adb	(revision 247293)
+++ sem_aggr.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- --
@@ -3205,7 +3205,7 @@
       --
       --  This variable is updated as a side effect of function Get_Value.
 
-      Box_Node       : Node_Id;
+      Box_Node       : Node_Id := Empty;
       Is_Box_Present : Boolean := False;
       Others_Box     : Integer := 0;
       --  Ada 2005 (AI-287): Variables used in case of default initialization
Index: sem_prag.adb
===================================================================
--- sem_prag.adb	(revision 247387)
+++ sem_prag.adb	(working copy)
@@ -12667,6 +12667,7 @@
             Eloc  : Source_Ptr;
             Expr  : Node_Id;
             Str   : Node_Id;
+            pragma Warnings (Off, Str);
 
          begin
             --  Pragma Check is Ghost when it applies to a Ghost entity. Set
Index: sem_ch12.adb
===================================================================
--- sem_ch12.adb	(revision 247387)
+++ sem_ch12.adb	(working copy)
@@ -5652,6 +5652,7 @@
 
       Decl    : Node_Id;
       Expr    : Node_Id;
+      pragma Warnings (Off, Expr);
       F1, F2  : Entity_Id;
       Func    : Entity_Id;
       Op_Name : Name_Id;
Index: freeze.adb
===================================================================
--- freeze.adb	(revision 247338)
+++ freeze.adb	(working copy)
@@ -1174,6 +1174,7 @@
       Component_Aliased : Boolean;
 
       Comp_Byte_Aligned : Boolean;
+      pragma Warnings (Off, Comp_Byte_Aligned);
       --  Set for the record case, True if Comp starts on a byte boundary
       --  (in which case it is allowed to have different storage order).
 
Index: sem_attr.adb
===================================================================
--- sem_attr.adb	(revision 247383)
+++ sem_attr.adb	(working copy)
@@ -4322,7 +4322,7 @@
 
          Context   : constant Node_Id := Parent (N);
          Attr      : Node_Id;
-         Encl_Loop : Node_Id;
+         Encl_Loop : Node_Id   := Empty;
          Encl_Prag : Node_Id   := Empty;
          Loop_Id   : Entity_Id := Empty;
          Scop      : Entity_Id;
Index: sem_eval.adb
===================================================================
--- sem_eval.adb	(revision 247333)
+++ sem_eval.adb	(working copy)
@@ -6457,8 +6457,8 @@
    --------------------
 
    procedure Why_Not_Static (Expr : Node_Id) is
-      N   : constant Node_Id   := Original_Node (Expr);
-      Typ : Entity_Id;
+      N   : constant Node_Id := Original_Node (Expr);
+      Typ : Entity_Id        := Empty;
       E   : Entity_Id;
       Alt : Node_Id;
       Exp : Node_Id;
Index: sem_ch13.adb
===================================================================
--- sem_ch13.adb	(revision 247387)
+++ sem_ch13.adb	(working copy)
@@ -13334,10 +13334,10 @@
             Expr : Node_Id;
 
             X_Alignment : Uint;
-            Y_Alignment : Uint;
+            Y_Alignment : Uint := Uint_0;
 
             X_Size : Uint;
-            Y_Size : Uint;
+            Y_Size : Uint := Uint_0;
 
             X_Offs : Uint;
 
Index: exp_ch3.adb
===================================================================
--- exp_ch3.adb	(revision 247320)
+++ exp_ch3.adb	(working copy)
@@ -2875,6 +2875,7 @@
                   declare
                      Exp   : Node_Id;
                      Nam   : Name_Id;
+                     pragma Warnings (Off, Nam);
                      Ritem : Node_Id;
 
                   begin


More information about the Gcc-patches mailing list