Patchwork [Ada] Fix initialization problems on global variables in frontend

login
register
mail settings
Submitter Arnaud Charlet
Date April 23, 2013, 2:54 p.m.
Message ID <20130423145408.GA7867@adacore.com>
Download mbox | patch
Permalink /patch/238935/
State New
Headers show

Comments

Arnaud Charlet - April 23, 2013, 2:54 p.m.
These initialization errors were discovered by running the compiler compiled
with -gnatVa and pragma Initialize_Scalars.

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

2013-04-23  Yannick Moy  <moy@adacore.com>

	* err_vars.ads (Error_Msg_Qual_Level): Set variable to zero
	at declaration.
	* opt.ads (Multiple_Unit_Index): Set variable to zero at declaration.
	* sem_util.adb (NCT_Table_Entries): Set variable to zero at declaration.
	* set_targ.ads (Num_FPT_Modes): Set variable to zero at declaration.
	* stylesw.adb (Save_Style_Check_Options): Protect testing the
	value of Style_Check_Comments_Spacing by a previous test that
	Style_Check_Comments is True.

Patch

Index: err_vars.ads
===================================================================
--- err_vars.ads	(revision 198175)
+++ err_vars.ads	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2012, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2013, 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- --
@@ -54,7 +54,7 @@ 
    --  variables are not reset by calls to the error message routines, so the
    --  caller is responsible for resetting the default behavior after use.
 
-   Error_Msg_Qual_Level : Int;
+   Error_Msg_Qual_Level : Int := 0;
    --  Number of levels of qualification required for type name (see the
    --  description of the } insertion character. Note that this value does
    --  note get reset by any Error_Msg call, so the caller is responsible
Index: sem_util.adb
===================================================================
--- sem_util.adb	(revision 198188)
+++ sem_util.adb	(working copy)
@@ -83,7 +83,7 @@ 
    NCT_Hash_Tables_Used : Boolean := False;
    --  Set to True if hash tables are in use
 
-   NCT_Table_Entries : Nat;
+   NCT_Table_Entries : Nat := 0;
    --  Count entries in table to see if threshold is reached
 
    NCT_Hash_Table_Setup : Boolean := False;
Index: stylesw.adb
===================================================================
--- stylesw.adb	(revision 198175)
+++ stylesw.adb	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2012, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2013, 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- --
@@ -161,10 +161,12 @@ 
       Add ('b', Style_Check_Blanks_At_End);
       Add ('B', Style_Check_Boolean_And_Or);
 
-      if Style_Check_Comments_Spacing = 2 then
-         Add ('c', Style_Check_Comments);
-      elsif Style_Check_Comments_Spacing = 1 then
-         Add ('C', Style_Check_Comments);
+      if Style_Check_Comments then
+         if Style_Check_Comments_Spacing = 2 then
+            Add ('c', Style_Check_Comments);
+         elsif Style_Check_Comments_Spacing = 1 then
+            Add ('C', Style_Check_Comments);
+         end if;
       end if;
 
       Add ('d', Style_Check_DOS_Line_Terminator);
Index: set_targ.ads
===================================================================
--- set_targ.ads	(revision 198175)
+++ set_targ.ads	(working copy)
@@ -98,7 +98,7 @@ 
    end record;
 
    FPT_Mode_Table : array (1 .. 1000) of FPT_Mode_Entry;
-   Num_FPT_Modes  : Natural;
+   Num_FPT_Modes  : Natural := 0;
    --  Table containing the supported modes and number of entries
 
    -----------------
Index: opt.ads
===================================================================
--- opt.ads	(revision 198175)
+++ opt.ads	(working copy)
@@ -968,7 +968,7 @@ 
    --  GNATMAKE
    --  Set to True if minimal recompilation mode requested
 
-   Multiple_Unit_Index : Int;
+   Multiple_Unit_Index : Int := 0;
    --  GNAT
    --  This is set non-zero if the current unit is being compiled in multiple
    --  unit per file mode, meaning that the current unit is selected from the