OSDN Git Service

2011-12-20 Robert Dewar <dewar@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Dec 2011 13:52:22 +0000 (13:52 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Dec 2011 13:52:22 +0000 (13:52 +0000)
* a-cdlili.ads, sem_cat.adb, sem_ch10.adb: Minor reformatting.

2011-12-20  Bob Duff  <duff@adacore.com>

* s-taprop-mingw.adb (Yield): Do_Yield is no longer Unreferenced.

2011-12-20  Vincent Pucci  <pucci@adacore.com>

* impunit.adb: s-dimkio, s-dimmks and s-dmotpr defined as GNAT
Defined Additions to System.
* Makefile.rtl: s-dimkio, s-dimmks and s-dmotpr added.
* s-dimkio.ads, s-dimmks.ads, s-dmotpr.ads: New files.

2011-12-20  Gary Dismukes  <dismukes@adacore.com>

* sem_ch4.adb (Traverse_Homonyms): Allow a homonym to match when
within an instance, even if the homonym is marked Is_Hidden at
this point.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182535 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/Makefile.rtl
gcc/ada/a-cdlili.ads
gcc/ada/impunit.adb
gcc/ada/s-dimkio.ads [new file with mode: 0644]
gcc/ada/s-dimmks.ads [new file with mode: 0644]
gcc/ada/s-dmotpr.ads [new file with mode: 0644]
gcc/ada/s-taprop-mingw.adb
gcc/ada/sem_cat.adb
gcc/ada/sem_ch10.adb
gcc/ada/sem_ch4.adb

index dda4bac..c6afe58 100644 (file)
@@ -1,5 +1,26 @@
 2011-12-20  Robert Dewar  <dewar@adacore.com>
 
+       * a-cdlili.ads, sem_cat.adb, sem_ch10.adb: Minor reformatting.
+
+2011-12-20  Bob Duff  <duff@adacore.com>
+
+       * s-taprop-mingw.adb (Yield): Do_Yield is no longer Unreferenced.
+
+2011-12-20  Vincent Pucci  <pucci@adacore.com>
+
+       * impunit.adb: s-dimkio, s-dimmks and s-dmotpr defined as GNAT
+       Defined Additions to System.
+       * Makefile.rtl: s-dimkio, s-dimmks and s-dmotpr added.
+       * s-dimkio.ads, s-dimmks.ads, s-dmotpr.ads: New files.
+
+2011-12-20  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch4.adb (Traverse_Homonyms): Allow a homonym to match when
+       within an instance, even if the homonym is marked Is_Hidden at
+       this point.
+
+2011-12-20  Robert Dewar  <dewar@adacore.com>
+
        * sem_ch3.adb, sem_ch5.adb, s-diinio.adb, s-diinio.ads, sem_dim.adb,
        sem_dim.ads, sem_res.adb, s-stposu.adb, s-stposu.ads, sem_ch4.adb,
        s-diflio.adb, s-diflio.ads, exp_disp.adb, s-llflex.ads: Minor
index e04a5ff..8f8e176 100644 (file)
@@ -506,7 +506,10 @@ GNATRTL_NONTASKING_OBJS= \
   s-crtrun$(objext) \
   s-diflio$(objext) \
   s-diinio$(objext) \
+  s-dimkio$(objext) \
+  s-dimmks$(objext) \
   s-direio$(objext) \
+  s-dmotpr$(objext) \
   s-dsaser$(objext) \
   s-excdeb$(objext) \
   s-except$(objext) \
index 0e64376..6662ff1 100644 (file)
@@ -143,10 +143,10 @@ package Ada.Containers.Doubly_Linked_Lists is
    procedure Reverse_Elements (Container : in out List);
 
    function Iterate (Container : List)
-      return List_Iterator_Interfaces.Reversible_Iterator'class;
+      return List_Iterator_Interfaces.Reversible_Iterator'Class;
 
    function Iterate (Container : List; Start : Cursor)
-      return List_Iterator_Interfaces.Reversible_Iterator'class;
+      return List_Iterator_Interfaces.Reversible_Iterator'Class;
 
    procedure Swap
      (Container : in out List;
index 49a44ad..b1903d3 100644 (file)
@@ -368,6 +368,9 @@ package body Impunit is
     ("s-assert", F),  -- System.Assertions
     ("s-diflio", F),  -- System.Dim_Float_IO
     ("s-diinio", F),  -- System.Dim_Integer_IO
+    ("s-dimkio", F),  -- System.Dim_Mks_IO
+    ("s-dimmks", F),  -- System.Dim_Mks
+    ("s-dmotpr", F),  -- System.Dim_Mks.Other_Prefixes
     ("s-memory", F),  -- System.Memory
     ("s-parint", F),  -- System.Partition_Interface
     ("s-pooglo", F),  -- System.Pool_Global
diff --git a/gcc/ada/s-dimkio.ads b/gcc/ada/s-dimkio.ads
new file mode 100644 (file)
index 0000000..27ac0ca
--- /dev/null
@@ -0,0 +1,38 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                  GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                --
+--                                                                          --
+--                     S Y S T E M . D I M _ M K S _ I O                    --
+--                                                                          --
+--                                  S p e c                                 --
+--                                                                          --
+--          Copyright (C) 1992-2011, Free Software Foundation, Inc.         --
+--                                                                          --
+-- GNARL 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- --
+-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+--                                                                          --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception,   --
+-- version 3.1, as published by the Free Software Foundation.               --
+--                                                                          --
+-- You should have received a copy of the GNU General Public License and    --
+-- a copy of the GCC Runtime Library Exception along with this program;     --
+-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+-- <http://www.gnu.org/licenses/>.                                          --
+--                                                                          --
+-- GNARL was developed by the GNARL team at Florida State University.       --
+-- Extensive contributions were provided by Ada Core Technologies, Inc.     --
+--                                                                          --
+------------------------------------------------------------------------------
+
+--  This package provides IO routines for the MKS dimension system (see
+--  System.Dim_Mks).
+
+with System.Dim_Mks; use System.Dim_Mks;
+with System.Dim_Float_IO;
+
+package System.Dim_Mks_IO is new System.Dim_Float_IO (Mks_Type);
diff --git a/gcc/ada/s-dimmks.ads b/gcc/ada/s-dimmks.ads
new file mode 100644 (file)
index 0000000..1026992
--- /dev/null
@@ -0,0 +1,324 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                  GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                --
+--                                                                          --
+--                        S Y S T E M . D I M _ M K S                       --
+--                                                                          --
+--                                  S p e c                                 --
+--                                                                          --
+--          Copyright (C) 1992-2011, Free Software Foundation, Inc.         --
+--                                                                          --
+-- GNARL 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- --
+-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+--                                                                          --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception,   --
+-- version 3.1, as published by the Free Software Foundation.               --
+--                                                                          --
+-- You should have received a copy of the GNU General Public License and    --
+-- a copy of the GCC Runtime Library Exception along with this program;     --
+-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+-- <http://www.gnu.org/licenses/>.                                          --
+--                                                                          --
+-- GNARL was developed by the GNARL team at Florida State University.       --
+-- Extensive contributions were provided by Ada Core Technologies, Inc.     --
+--                                                                          --
+------------------------------------------------------------------------------
+
+--  This package defines the MKS dimension system which is the SI system of
+--  units.
+--  Some other prefixes of this sytem are defined in a child package (see
+--  System.Dim_Mks.Other_Prefixes) in order to avoid too many constant
+--  declarations in this package.
+
+with Ada.Numerics;
+
+package System.Dim_Mks is
+
+   e  : constant := Ada.Numerics.e;
+   Pi : constant := Ada.Numerics.Pi;
+
+   --  Dimensioned type Mks_Type
+
+   type Mks_Type is new Long_Float
+     with
+      Dimension_System => ((Meter, 'm'),
+        (Kilogram, "kg"),
+        (Second,   's'),
+        (Ampere,   'A'),
+        (Kelvin,   'K'),
+        (Mole,     "mol"),
+        (Candela,  "cd"));
+
+   --  SI Base
+
+   subtype Length is Mks_Type
+     with
+      Dimension => ('m',
+        Meter =>  1,
+        others => 0);
+   subtype Mass is Mks_Type
+     with
+      Dimension => ("kg",
+        Kilogram => 1,
+        others =>   0);
+   subtype Time is Mks_Type
+     with
+      Dimension => ('s',
+        Second => 1,
+        others => 0);
+   subtype Electric_Current is Mks_Type
+     with
+      Dimension => ('A',
+        Ampere => 1,
+        others => 0);
+   subtype Thermodynamic_Temperature is Mks_Type
+     with
+      Dimension => ('K',
+        Kelvin => 1,
+        others => 0);
+   subtype Amount_Of_Substance is Mks_Type
+     with
+      Dimension => ("mol",
+        Mole =>   1,
+        others => 0);
+   subtype Luminous_Intensity is Mks_Type
+     with
+      Dimension => ("cd",
+        Candela => 1,
+        others =>  0);
+
+   --  SI Base units
+
+   m   : constant Length                    := 1.0;
+   kg  : constant Mass                      := 1.0;
+   s   : constant Time                      := 1.0;
+   A   : constant Electric_Current          := 1.0;
+   K   : constant Thermodynamic_Temperature := 1.0;
+   mol : constant Amount_Of_Substance       := 1.0;
+   cd  : constant Luminous_Intensity        := 1.0;
+
+   --  SI Derived dimensioned subtypes
+
+   subtype Angle is Mks_Type
+     with
+      Dimension => ("rad",
+        others => 0);
+
+   subtype Solid_Angle is Mks_Type
+     with
+      Dimension => ("sr",
+        others => 0);
+
+   subtype Frequency is Mks_Type
+     with
+      Dimension => ("Hz",
+        Second => -1,
+        others => 0);
+   subtype Force is Mks_Type
+     with
+      Dimension => ('N',
+        Meter =>    1,
+        Kilogram => 1,
+        Second =>  -2,
+        others =>   0);
+   subtype Pressure is Mks_Type
+     with
+      Dimension => ("Pa",
+        Meter =>    -1,
+        Kilogram => 1,
+        Second =>   -2,
+        others =>   0);
+   subtype Energy is Mks_Type
+     with
+      Dimension => ('J',
+        Meter =>    2,
+        Kilogram => 1,
+        Second =>   -2,
+        others =>   0);
+   subtype Power is Mks_Type
+     with
+      Dimension => ('W',
+        Meter =>    2,
+        Kilogram => 1,
+        Second =>   -3,
+        others =>   0);
+   subtype Electric_Charge is Mks_Type
+     with
+      Dimension => ('C',
+        Second => 1,
+        Ampere => 1,
+        others => 0);
+   subtype Electric_Potential_Difference is Mks_Type
+     with
+      Dimension => ('V',
+        Meter =>    2,
+        Kilogram => 1,
+        Second =>   -3,
+        Ampere =>   -1,
+        others =>   0);
+   subtype Electric_Capacitance is Mks_Type
+     with
+      Dimension => ('F',
+        Meter =>    -2,
+        Kilogram => -1,
+        Second =>   4,
+        Ampere =>   2,
+        others =>   0);
+   subtype Electric_Resistance is Mks_Type
+     with
+      Dimension => ("Ω",
+        Meter =>    2,
+        Kilogram => 1,
+        Second =>   -3,
+        Ampere =>   -2,
+        others =>   0);
+   subtype Electric_Conductance is Mks_Type
+     with
+      Dimension => ('S',
+        Meter =>    -2,
+        Kilogram => -1,
+        Second =>   3,
+        Ampere =>   2,
+        others =>   0);
+   subtype Magnetic_Flux is Mks_Type
+     with
+      Dimension => ("Wb",
+        Meter =>    2,
+        Kilogram => 1,
+        Second =>   -2,
+        Ampere =>   -1,
+        others =>   0);
+   subtype Magnetic_Flux_Density is Mks_Type
+     with
+      Dimension => ('T',
+        Kilogram => 1,
+        Second =>   -2,
+        Ampere =>   -1,
+        others =>   0);
+   subtype Inductance is Mks_Type
+     with
+      Dimension => ('H',
+        Meter =>    2,
+        Kilogram => 1,
+        Second =>   -2,
+        Ampere =>   -2,
+        others =>   0);
+   subtype Celsius_Temperature is Mks_Type
+     with
+      Dimension => ("°C",
+        Kelvin => 1,
+        others => 0);
+   subtype Luminous_Flux is Mks_Type
+     with
+      Dimension => ("lm",
+        Candela => 1,
+        others =>  0);
+   subtype Illuminance is Mks_Type
+     with
+      Dimension => ("lx",
+        Meter =>   -2,
+        Candela => 1,
+        others =>  0);
+   subtype Radioactivity is Mks_Type
+     with
+      Dimension => ("Bq",
+        Second => -1,
+        others => 0);
+   subtype Absorbed_Dose is Mks_Type
+     with
+      Dimension => ("Gy",
+        Meter =>  2,
+        Second => -2,
+        others => 0);
+   subtype Equivalent_Dose is Mks_Type
+     with
+      Dimension => ("Sv",
+        Meter =>  2,
+        Second => -2,
+        others => 0);
+   subtype Catalytic_Activity is Mks_Type
+     with
+      Dimension => ("kat",
+        Second => -1,
+        Mole =>   1,
+        others => 0);
+
+   rad : constant Angle                         := 1.0;
+   sr  : constant Solid_Angle                   := 1.0;
+   Hz  : constant Frequency                     := 1.0;
+   N   : constant Force                         := 1.0;
+   Pa  : constant Pressure                      := 1.0;
+   J   : constant Energy                        := 1.0;
+   W   : constant Power                         := 1.0;
+   C   : constant Electric_Charge               := 1.0;
+   V   : constant Electric_Potential_Difference := 1.0;
+   F   : constant Electric_Capacitance          := 1.0;
+   Ohm : constant Electric_Resistance           := 1.0;
+   Si  : constant Electric_Conductance          := 1.0;
+   Wb  : constant Magnetic_Flux                 := 1.0;
+   T   : constant Magnetic_Flux_Density         := 1.0;
+   H   : constant Inductance                    := 1.0;
+   dC  : constant Celsius_Temperature           := 273.15;
+   lm  : constant Luminous_Flux                 := 1.0;
+   lx  : constant Illuminance                   := 1.0;
+   Bq  : constant Radioactivity                 := 1.0;
+   Gy  : constant Absorbed_Dose                 := 1.0;
+   Sv  : constant Equivalent_Dose               := 1.0;
+   kat : constant Catalytic_Activity            := 1.0;
+
+   --  SI prefixes for Meter
+
+   um  : constant Length := 1.0E-06;  -- micro (u)
+   mm  : constant Length := 1.0E-03;  -- milli
+   cm  : constant Length := 1.0E-02;  -- centi
+   dm  : constant Length := 1.0E-01;  -- deci
+   dam : constant Length := 1.0E+01;  -- deka
+   hm  : constant Length := 1.0E+02;  -- hecto
+   km  : constant Length := 1.0E+03;  -- kilo
+   Mem : constant Length := 1.0E+06;  -- mega
+
+   --  SI prefixes for Kilogram
+
+   ug  : constant Mass := 1.0E-09;  -- micro (u)
+   mg  : constant Mass := 1.0E-06;  -- milli
+   cg  : constant Mass := 1.0E-05;  -- centi
+   dg  : constant Mass := 1.0E-04;  -- deci
+   g   : constant Mass := 1.0E-03;  -- gram
+   dag : constant Mass := 1.0E-02;  -- deka
+   hg  : constant Mass := 1.0E-01;  -- hecto
+   Meg : constant Mass := 1.0E+03;  -- mega
+
+   --  SI prefixes for Second
+
+   us  : constant Time := 1.0E-06;  -- micro (u)
+   ms  : constant Time := 1.0E-03;  -- milli
+   cs  : constant Time := 1.0E-02;  -- centi
+   ds  : constant Time := 1.0E-01;  -- deci
+   das : constant Time := 1.0E+01;  -- deka
+   hs  : constant Time := 1.0E+02;  -- hecto
+   ks  : constant Time := 1.0E+03;  -- kilo
+   Mes : constant Time := 1.0E+06;  -- mega
+
+   --  Other constants for Second
+
+   min  : constant Time := 60.0 * s;
+   hour : constant Time := 60.0 * min;
+   day  : constant Time := 24.0 * hour;
+   year : constant Time := 365.25 * day;
+
+   --  SI prefixes for Ampere
+
+   mA  : constant Electric_Current := 1.0E-03;  -- milli
+   cA  : constant Electric_Current := 1.0E-02;  -- centi
+   dA  : constant Electric_Current := 1.0E-01;  -- deci
+   daA : constant Electric_Current := 1.0E+01;  -- deka
+   hA  : constant Electric_Current := 1.0E+02;  -- hecto
+   kA  : constant Electric_Current := 1.0E+03;  -- kilo
+   MeA : constant Electric_Current := 1.0E+06;  -- mega
+
+end System.Dim_Mks;
diff --git a/gcc/ada/s-dmotpr.ads b/gcc/ada/s-dmotpr.ads
new file mode 100644 (file)
index 0000000..b91afb8
--- /dev/null
@@ -0,0 +1,168 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                  GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                --
+--                                                                          --
+--         S Y S T E M . D I M _ M K S . O T H E R _ P R E F I X E S        --
+--                                                                          --
+--                                  S p e c                                 --
+--                                                                          --
+--          Copyright (C) 1992-2011, Free Software Foundation, Inc.         --
+--                                                                          --
+-- GNARL 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- --
+-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+--                                                                          --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception,   --
+-- version 3.1, as published by the Free Software Foundation.               --
+--                                                                          --
+-- You should have received a copy of the GNU General Public License and    --
+-- a copy of the GCC Runtime Library Exception along with this program;     --
+-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+-- <http://www.gnu.org/licenses/>.                                          --
+--                                                                          --
+-- GNARL was developed by the GNARL team at Florida State University.       --
+-- Extensive contributions were provided by Ada Core Technologies, Inc.     --
+--                                                                          --
+------------------------------------------------------------------------------
+
+--  Package that defines some other prefixes for the MKS base unit system.
+
+--  These prefixes have been defined in a child package in order to avoid too
+--  many constant declarations in System.Dim_Mks.
+
+package System.Dim_Mks.Other_Prefixes is
+
+   --  SI prefixes for Meter
+
+   ym  : constant Length := 1.0E-24;  -- yocto
+   zm  : constant Length := 1.0E-21;  -- zepto
+   am  : constant Length := 1.0E-18;  -- atto
+   fm  : constant Length := 1.0E-15;  -- femto
+   pm  : constant Length := 1.0E-12;  -- pico
+   nm  : constant Length := 1.0E-09;  -- nano
+   Gm  : constant Length := 1.0E+09;  -- giga
+   Tm  : constant Length := 1.0E+12;  -- tera
+   Pem : constant Length := 1.0E+15;  -- peta
+   Em  : constant Length := 1.0E+18;  -- exa
+   Zem : constant Length := 1.0E+21;  -- zetta
+   Yom : constant Length := 1.0E+24;  -- yotta
+
+   --  SI prefixes for Kilogram
+
+   yg  : constant Mass := 1.0E-27;  -- yocto
+   zg  : constant Mass := 1.0E-24;  -- zepto
+   ag  : constant Mass := 1.0E-21;  -- atto
+   fg  : constant Mass := 1.0E-18;  -- femto
+   pg  : constant Mass := 1.0E-15;  -- pico
+   ng  : constant Mass := 1.0E-12;  -- nano
+   Gg  : constant Mass := 1.0E+06;  -- giga
+   Tg  : constant Mass := 1.0E+09;  -- tera
+   Peg : constant Mass := 1.0E+13;  -- peta
+   Eg  : constant Mass := 1.0E+15;  -- exa
+   Zeg : constant Mass := 1.0E+18;  -- zetta
+   Yog : constant Mass := 1.0E+21;  -- yotta
+
+   --  SI prefixes for Second
+
+   ys  : constant Time := 1.0E-24;  -- yocto
+   zs  : constant Time := 1.0E-21;  -- zepto
+   as  : constant Time := 1.0E-18;  -- atto
+   fs  : constant Time := 1.0E-15;  -- femto
+   ps  : constant Time := 1.0E-12;  -- pico
+   ns  : constant Time := 1.0E-09;  -- nano
+   Gs  : constant Time := 1.0E+09;  -- giga
+   Ts  : constant Time := 1.0E+12;  -- tera
+   Pes : constant Time := 1.0E+15;  -- peta
+   Es  : constant Time := 1.0E+18;  -- exa
+   Zes : constant Time := 1.0E+21;  -- zetta
+   Yos : constant Time := 1.0E+24;  -- yotta
+
+   --  SI prefixes for Ampere
+
+   yA  : constant Electric_Current := 1.0E-24;  -- yocto
+   zA  : constant Electric_Current := 1.0E-21;  -- zepto
+   aA  : constant Electric_Current := 1.0E-18;  -- atto
+   fA  : constant Electric_Current := 1.0E-15;  -- femto
+   nA  : constant Electric_Current := 1.0E-09;  -- nano
+   uA  : constant Electric_Current := 1.0E-06;  -- micro (u)
+   GA  : constant Electric_Current := 1.0E+09;  -- giga
+   TA  : constant Electric_Current := 1.0E+12;  -- tera
+   PeA : constant Electric_Current := 1.0E+15;  -- peta
+   EA  : constant Electric_Current := 1.0E+18;  -- exa
+   ZeA : constant Electric_Current := 1.0E+21;  -- zetta
+   YoA : constant Electric_Current := 1.0E+24;  -- yotta
+
+   --  SI prefixes for Kelvin
+
+   yK  : constant Thermodynamic_Temperature := 1.0E-24;  -- yocto
+   zK  : constant Thermodynamic_Temperature := 1.0E-21;  -- zepto
+   aK  : constant Thermodynamic_Temperature := 1.0E-18;  -- atto
+   fK  : constant Thermodynamic_Temperature := 1.0E-15;  -- femto
+   pK  : constant Thermodynamic_Temperature := 1.0E-12;  -- pico
+   nK  : constant Thermodynamic_Temperature := 1.0E-09;  -- nano
+   uK  : constant Thermodynamic_Temperature := 1.0E-06;  -- micro (u)
+   mK  : constant Thermodynamic_Temperature := 1.0E-03;  -- milli
+   cK  : constant Thermodynamic_Temperature := 1.0E-02;  -- centi
+   dK  : constant Thermodynamic_Temperature := 1.0E-01;  -- deci
+   daK : constant Thermodynamic_Temperature := 1.0E+01;  -- deka
+   hK  : constant Thermodynamic_Temperature := 1.0E+02;  -- hecto
+   kK  : constant Thermodynamic_Temperature := 1.0E+03;  -- kilo
+   MeK : constant Thermodynamic_Temperature := 1.0E+06;  -- mega
+   GK  : constant Thermodynamic_Temperature := 1.0E+09;  -- giga
+   TK  : constant Thermodynamic_Temperature := 1.0E+12;  -- tera
+   PeK : constant Thermodynamic_Temperature := 1.0E+15;  -- peta
+   EK  : constant Thermodynamic_Temperature := 1.0E+18;  -- exa
+   ZeK : constant Thermodynamic_Temperature := 1.0E+21;  -- zetta
+   YoK : constant Thermodynamic_Temperature := 1.0E+24;  -- yotta
+
+   --  SI prefixes for Mole
+
+   ymol  : constant Amount_Of_Substance := 1.0E-24;  -- yocto
+   zmol  : constant Amount_Of_Substance := 1.0E-21;  -- zepto
+   amol  : constant Amount_Of_Substance := 1.0E-18;  -- atto
+   fmol  : constant Amount_Of_Substance := 1.0E-15;  -- femto
+   pmol  : constant Amount_Of_Substance := 1.0E-12;  -- pico
+   nmol  : constant Amount_Of_Substance := 1.0E-09;  -- nano
+   umol  : constant Amount_Of_Substance := 1.0E-06;  -- micro (u)
+   mmol  : constant Amount_Of_Substance := 1.0E-03;  -- milli
+   cmol  : constant Amount_Of_Substance := 1.0E-02;  -- centi
+   dmol  : constant Amount_Of_Substance := 1.0E-01;  -- deci
+   damol : constant Amount_Of_Substance := 1.0E+01;  -- deka
+   hmol  : constant Amount_Of_Substance := 1.0E+02;  -- hecto
+   kmol  : constant Amount_Of_Substance := 1.0E+03;  -- kilo
+   Memol : constant Amount_Of_Substance := 1.0E+06;  -- mega
+   Gmol  : constant Amount_Of_Substance := 1.0E+09;  -- giga
+   Tmol  : constant Amount_Of_Substance := 1.0E+12;  -- tera
+   Pemol : constant Amount_Of_Substance := 1.0E+15;  -- peta
+   Emol  : constant Amount_Of_Substance := 1.0E+18;  -- exa
+   Zemol : constant Amount_Of_Substance := 1.0E+21;  -- zetta
+   Yomol : constant Amount_Of_Substance := 1.0E+24;  -- yotta
+
+   --  SI prefixes for Candela
+
+   ycd  : constant Luminous_Intensity := 1.0E-24;  -- yocto
+   zcd  : constant Luminous_Intensity := 1.0E-21;  -- zepto
+   acd  : constant Luminous_Intensity := 1.0E-18;  -- atto
+   fcd  : constant Luminous_Intensity := 1.0E-15;  -- femto
+   pcd  : constant Luminous_Intensity := 1.0E-12;  -- pico
+   ncd  : constant Luminous_Intensity := 1.0E-09;  -- nano
+   ucd  : constant Luminous_Intensity := 1.0E-06;  -- micro (u)
+   mcd  : constant Luminous_Intensity := 1.0E-03;  -- milli
+   ccd  : constant Luminous_Intensity := 1.0E-02;  -- centi
+   dcd  : constant Luminous_Intensity := 1.0E-01;  -- deci
+   dacd : constant Luminous_Intensity := 1.0E+01;  -- deka
+   hcd  : constant Luminous_Intensity := 1.0E+02;  -- hecto
+   kcd  : constant Luminous_Intensity := 1.0E+03;  -- kilo
+   Mecd : constant Luminous_Intensity := 1.0E+06;  -- mega
+   Gcd  : constant Luminous_Intensity := 1.0E+09;  -- giga
+   Tcd  : constant Luminous_Intensity := 1.0E+12;  -- tera
+   Pecd : constant Luminous_Intensity := 1.0E+15;  -- peta
+   Ecd  : constant Luminous_Intensity := 1.0E+18;  -- exa
+   Zecd : constant Luminous_Intensity := 1.0E+21;  -- zetta
+   Yocd : constant Luminous_Intensity := 1.0E+24;  -- yotta
+
+end System.Dim_Mks.Other_Prefixes;
index 0a976a4..5072307 100644 (file)
@@ -697,15 +697,12 @@ package body System.Task_Primitives.Operations is
    -----------
 
    procedure Yield (Do_Yield : Boolean := True) is
-      pragma Unreferenced (Do_Yield);
-
    begin
       --  Note: in a previous implementation if Do_Yield was False, then we
       --  introduced a delay of 1 millisecond in an attempt to get closer to
       --  annex D semantics, and in particular to make ACATS CXD8002 pass. But
       --  this change introduced a huge performance regression evaluating the
-      --  Count attribute. So we decided to remove this processing and just
-      --  call SwitchToThread unconditionally (leaving Do_Yield unreferenced).
+      --  Count attribute. So we decided to remove this processing.
 
       --  Moreover, CXD8002 appears to pass on Windows (although we do not
       --  guarantee full Annex D compliance on Windows in any case).
index 8ac23de..4d1794a 100644 (file)
@@ -976,7 +976,10 @@ package body Sem_Cat is
 
                               --  Skip if error already posted on the WITH
                               --  clause (in which case the Name attribute
-                              --  may be invalid).
+                              --  may be invalid). In particular, this fixes
+                              --  the problem of hanging in the presence of a
+                              --  WITH clause on a child that is an illegal
+                              --  generic instantiation.
 
                               or else Error_Posted (Item))
             then
index b4c42ee..5c65ab0 100644 (file)
@@ -2681,8 +2681,8 @@ package body Sem_Ch10 is
             pragma Assert (Serious_Errors_Detected /= 0);
 
             --  Mark the node to indicate that a related error has been posted.
-            --  This defends further compilation passes against cascaded errors
-            --  caused by the invalid WITH clause node.
+            --  This defends further compilation passes against improper use of
+            --  the invalid WITH clause node.
 
             Set_Error_Posted (N);
             Set_Name (N, Error);
index 97a8771..1c5654e 100644 (file)
@@ -7168,11 +7168,13 @@ package body Sem_Ch4 is
 
             --  Find a non-hidden operation whose first parameter is of the
             --  class-wide type, a subtype thereof, or an anonymous access
-            --  to same.
+            --  to same. If in an instance, the operation can be considered
+            --  even if hidden (it may be hidden because the instantiation is
+            --  expanded after the containing package has been analyzed).
 
             while Present (Hom) loop
                if Ekind_In (Hom, E_Procedure, E_Function)
-                 and then not Is_Hidden (Hom)
+                 and then (not Is_Hidden (Hom) or else In_Instance)
                  and then Scope (Hom) = Scope (Anc_Type)
                  and then Present (First_Formal (Hom))
                  and then