[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Thu, 4 Aug 2011 13:59:40 +0000 (15:59 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 4 Aug 2011 13:59:40 +0000 (15:59 +0200)
2011-08-04  Yannick Moy  <moy@adacore.com>

* sem_ch3.adb, sem_ch5.adb, sem_util.adb, sem_ch4.adb, sem_ch8.adb,
opt.ads, lib-xref.ads: Code clean up.

2011-08-04  Yannick Moy  <moy@adacore.com>

* gnat_rm.texi: Update description of Test_Case
* gnat_ugn.texi: Typo.

2011-08-04  Ed Falis  <falis@adacore.com>

* adaint.c (__gnat_get_number_of_cpus): fix typo in last checkin.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch4.adb (Suitable_Element): Skip field _parent on .NET/JVM when
it is of type Root_Controlled. This action eliminates fields Prev and
Next from type equality.

2011-08-04  Yannick Moy  <moy@adacore.com>

* lib-xref-alfa.adb: Correct typo.

2011-08-04  Matthew Heaney  <heaney@adacore.com>

* a-cohata.ads (Hash_Table_Type): default-initialize the Nodes
component.

From-SVN: r177390

14 files changed:
gcc/ada/ChangeLog
gcc/ada/a-cohata.ads
gcc/ada/adaint.c
gcc/ada/exp_ch4.adb
gcc/ada/gnat_rm.texi
gcc/ada/gnat_ugn.texi
gcc/ada/lib-xref-alfa.adb
gcc/ada/lib-xref.ads
gcc/ada/opt.ads
gcc/ada/sem_ch3.adb
gcc/ada/sem_ch4.adb
gcc/ada/sem_ch5.adb
gcc/ada/sem_ch8.adb
gcc/ada/sem_util.adb

index 01ac7c31ccb334e0c499ca26f165687caa32d963..d22593d340191c4c2cfffc0a21b295e5b6d0434e 100644 (file)
@@ -1,3 +1,32 @@
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch3.adb, sem_ch5.adb, sem_util.adb, sem_ch4.adb, sem_ch8.adb,
+       opt.ads, lib-xref.ads: Code clean up.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * gnat_rm.texi: Update description of Test_Case
+       * gnat_ugn.texi: Typo.
+
+2011-08-04  Ed Falis  <falis@adacore.com>
+
+       * adaint.c (__gnat_get_number_of_cpus): fix typo in last checkin.
+
+2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch4.adb (Suitable_Element): Skip field _parent on .NET/JVM when
+       it is of type Root_Controlled. This action eliminates fields Prev and
+       Next from type equality.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * lib-xref-alfa.adb: Correct typo.
+
+2011-08-04  Matthew Heaney  <heaney@adacore.com>
+
+       * a-cohata.ads (Hash_Table_Type): default-initialize the Nodes
+       component.
+
 2011-08-04  Yannick Moy  <moy@adacore.com>
 
        * sem_prag.adb (Check_Arg_Is_String_Literal): remove useless procedure
index d935447b25bea7ad64bc9d3be00fb57a3172a9d9..2a6c6ab5706576f6f92c13a4107dbd0639c6b054 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2010, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2011, 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- --
@@ -66,7 +66,7 @@ package Ada.Containers.Hash_Tables is
          Busy    : Natural := 0;
          Lock    : Natural := 0;
          Free    : Count_Type'Base := -1;
-         Nodes   : Nodes_Type (1 .. Capacity);
+         Nodes   : Nodes_Type (1 .. Capacity) := (others => <>);
          Buckets : Buckets_Type (1 .. Modulus) := (others => 0);
       end record;
    end Generic_Bounded_Hash_Table_Types;
index a5cc29c473258491bde29f344f3bada2f9db04f9..ab8446def3547e4f4ce8e5c4f1a6b9cb5fc4e491 100644 (file)
@@ -2448,7 +2448,7 @@ __gnat_number_of_cpus (void)
   if ((status & 1) != 0)
     cores = res;
 
-#elif defined (__WRS_CONFIG_SMP)
+#elif defined (_WRS_CONFIG_SMP)
   unsigned int vxCpuConfiguredGet (void);
 
   cores = vxCpuConfiguredGet ();
index 0a9ddb1c3367deca9c5eef82c3a9defe6c32e9f0..9acc3e4fa8c69062cb3c4f40b69ca46d3ed1df70 100644 (file)
@@ -9328,6 +9328,17 @@ package body Exp_Ch4 is
          elsif Chars (C) = Name_uTag then
             return Suitable_Element (Next_Entity (C));
 
+         --  The .NET/JVM version of type Root_Controlled contains two fields
+         --  which should not be considered part of the object. To achieve
+         --  proper equiality between two controlled objects on .NET/JVM, skip
+         --  field _parent whenever it is of type Root_Controlled.
+
+         elsif Chars (C) = Name_uParent
+           and then VM_Target /= No_VM
+           and then Etype (C) = RTE (RE_Root_Controlled)
+         then
+            return Suitable_Element (Next_Entity (C));
+
          elsif Is_Interface (Etype (C)) then
             return Suitable_Element (Next_Entity (C));
 
index 8c22975c42c1cac4a4aa018197ccdfd464a3599b..1cfcf715960055a00ca821b3e34679991e099567 100644 (file)
@@ -5018,7 +5018,7 @@ Syntax:
 
 @smallexample @c ada
 pragma Test_Case (
-   [Name     =>] String_Expression
+   [Name     =>] static_string_Expression
   ,[Mode     =>] (Normal | Robustness)
  [, Requires =>  Boolean_Expression]
  [, Ensures  =>  Boolean_Expression]);
@@ -5047,7 +5047,7 @@ expression. The following is an example of use within a package spec:
 package Math_Functions is
    ...
    function Sqrt (Arg : Float) return Float;
-   pragma Test_Case (Name     => ``Test_1``,
+   pragma Test_Case (Name     => "Test 1",
                      Mode     => Normal,
                      Requires => Arg < 100,
                      Ensures  => Sqrt'Result < 10);
@@ -5055,6 +5055,15 @@ package Math_Functions is
 end Math_Functions;
 @end smallexample
 
+@noindent
+The meaning of a test case is that, if the associated subprogram is
+executed in a context where @code{Requires} holds, then @code{Ensures}
+should hold when the subprogram returns. Mode @code{Normal} indicates
+that the input context should satisfy the normal precondition of the
+subprogram, and the output context should then satisfy its
+postcondition. More @code{Robustness} indicates that the normal pre- and
+postcondition of the subprogram should be ignored for this test case.
+
 @node Pragma Thread_Local_Storage
 @unnumberedsec Pragma Thread_Local_Storage
 @findex Thread_Local_Storage
index d45a6fc3aa3130834ad4a5fe3e07e0df8ba53325..3e689938cdd8e0ea93b09c8e7aca8f48909da16a 100644 (file)
@@ -17285,7 +17285,7 @@ much has actually been used.
 The environment task stack, e.g., the stack that contains the main unit, is
 only processed when the environment variable GNAT_STACK_LIMIT is set.
 
-@noident
+@noindent
 The package @code{GNAT.Task_Stack_Usage} provides facilities to get
 stack usage reports at run-time. See its body for the details.
 
index 0e0a4ff2973f53a3db83e9c44cf98425e84e6211..9b78b438562300001254e17ce8afb8d5216fc22d 100644 (file)
@@ -546,7 +546,7 @@ package body ALFA is
 
          function Is_Global_Constant (E : Entity_Id) return Boolean is
          begin
-            return Ekind (E) in E_Constant
+            return Ekind (E) = E_Constant
               and then Ekind_In (Scope (E), E_Package, E_Package_Body);
          end Is_Global_Constant;
 
index 5ddc273cf52a3b6f20a9be42e01909e12302da42..ecee22a337710ee124b2ad349f3aff232d0ef1bc 100644 (file)
@@ -177,7 +177,6 @@ package Lib.Xref is
    --              e = end of spec
    --              H = abstract type
    --              i = implicit reference
-   --              I = object definition with initialization
    --              k = implicit reference to parent unit in child unit
    --              l = label on END line
    --              m = modification
index 3eaa855358d906dc7e061876e397a4ffcc05e781..ec1213600074f97c849f9ea1eba1e80332fe2107 100644 (file)
@@ -1878,9 +1878,6 @@ package Opt is
    --  the generation of Why code for those parts of the input code that
    --  belong to the ALFA subset of Ada. Set by debuf flag -gnatd.F.
 
-   SPARK_Mode : Boolean := False;
-   --  Reject constructs not allowed by SPARK. Set by flag -gnatd.D.
-
 private
 
    --  The following type is used to save and restore settings of switches in
index 53ba892bd8e7cf4370c208555793e246739be7cc..4e8ae6d6a57454e0760eb759e44f00d9d8cf0ce5 100644 (file)
@@ -2057,7 +2057,7 @@ package body Sem_Ch3 is
    --  Start of processing for Analyze_Declarations
 
    begin
-      if SPARK_Mode or else Restriction_Check_Required (SPARK) then
+      if Restriction_Check_Required (SPARK) then
          Check_Later_Vs_Basic_Declarations (L, During_Parsing => False);
       end if;
 
index f1b53fca6705c8c178e94be2eaca9f235f9117d6..276c2843274205a6aed8a10f415fa5b44ee7d4c0 100644 (file)
@@ -881,7 +881,7 @@ package body Sem_Ch4 is
    --  Start of processing for Analyze_Call
 
    begin
-      if SPARK_Mode or else Restriction_Check_Required (SPARK) then
+      if Restriction_Check_Required (SPARK) then
          Check_Mixed_Parameter_And_Named_Associations;
       end if;
 
index 3597f793b908e7386c313e5e1eb121ca363ffff7..2e4adcde4a9e058dbf4b73d4f18e6b00d7fdce75 100644 (file)
@@ -2620,7 +2620,7 @@ package body Sem_Ch5 is
 
                   --  Now issue the warning (or error in formal mode)
 
-                  if SPARK_Mode or else Restriction_Check_Required (SPARK) then
+                  if Restriction_Check_Required (SPARK) then
                      Check_SPARK_Restriction
                        ("unreachable code is not allowed", Error_Node);
                   else
index 68ba0309b144e5548c4107d63863988fd818875d..9c7700194705e3903f22ae975e47b016f0580def 100644 (file)
@@ -5572,7 +5572,7 @@ package body Sem_Ch8 is
       --  Selector name cannot be a character literal or an operator symbol in
       --  SPARK, except for the operator symbol in a renaming.
 
-      if SPARK_Mode or else Restriction_Check_Required (SPARK) then
+      if Restriction_Check_Required (SPARK) then
          if Nkind (Selector_Name (N)) = N_Character_Literal then
             Check_SPARK_Restriction
               ("character literal cannot be prefixed", N);
@@ -5911,7 +5911,7 @@ package body Sem_Ch8 is
          --  Selector name is restricted in SPARK
 
          if Nkind (N) = N_Expanded_Name
-           and then (SPARK_Mode or else Restriction_Check_Required (SPARK))
+           and then Restriction_Check_Required (SPARK)
          then
             if Is_Subprogram (P_Name) then
                Check_SPARK_Restriction
index 0c36811ec5bdfa9cec2f8dfcb7d95c02ac4d84bc..b7b8fe01a6f79154591c013ebf99c81e9125532d 100644 (file)
@@ -11022,7 +11022,7 @@ package body Sem_Util is
          --  subprogram bodies. Detect those cases by testing whether
          --  Process_End_Label was called for a body (Typ = 't') or a package.
 
-         if (SPARK_Mode or else Restriction_Check_Required (SPARK))
+         if Restriction_Check_Required (SPARK)
            and then (Typ = 't' or else Ekind (Ent) = E_Package)
          then
             Error_Msg_Node_1 := Endl;