summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-20 13:52:22 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-20 13:52:22 +0000
commit1926e1a1fee2b38ed8048096c78fdf70d92f9d76 (patch)
tree7e2bfaa4402860f87df1ba84a54999ac4d758f05
parent44705307fb48554c8f72c6ea330327954e182ebb (diff)
downloadgcc-1926e1a1fee2b38ed8048096c78fdf70d92f9d76.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182535 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ada/ChangeLog21
-rw-r--r--gcc/ada/Makefile.rtl3
-rw-r--r--gcc/ada/a-cdlili.ads4
-rw-r--r--gcc/ada/impunit.adb3
-rw-r--r--gcc/ada/s-dimkio.ads38
-rw-r--r--gcc/ada/s-dimmks.ads324
-rw-r--r--gcc/ada/s-dmotpr.ads168
-rw-r--r--gcc/ada/s-taprop-mingw.adb5
-rw-r--r--gcc/ada/sem_cat.adb5
-rw-r--r--gcc/ada/sem_ch10.adb4
-rw-r--r--gcc/ada/sem_ch4.adb6
11 files changed, 570 insertions, 11 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index dda4bac929f..c6afe588f1f 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -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
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
index e04a5ff87b4..8f8e17646cf 100644
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -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) \
diff --git a/gcc/ada/a-cdlili.ads b/gcc/ada/a-cdlili.ads
index 0e6437602f5..6662ff161e6 100644
--- a/gcc/ada/a-cdlili.ads
+++ b/gcc/ada/a-cdlili.ads
@@ -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;
diff --git a/gcc/ada/impunit.adb b/gcc/ada/impunit.adb
index 49a44adf723..b1903d3542c 100644
--- a/gcc/ada/impunit.adb
+++ b/gcc/ada/impunit.adb
@@ -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
index 00000000000..27ac0cac902
--- /dev/null
+++ b/gcc/ada/s-dimkio.ads
@@ -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
index 00000000000..1026992327b
--- /dev/null
+++ b/gcc/ada/s-dimmks.ads
@@ -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
index 00000000000..b91afb83254
--- /dev/null
+++ b/gcc/ada/s-dmotpr.ads
@@ -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;
diff --git a/gcc/ada/s-taprop-mingw.adb b/gcc/ada/s-taprop-mingw.adb
index 0a976a4e8b1..50723076122 100644
--- a/gcc/ada/s-taprop-mingw.adb
+++ b/gcc/ada/s-taprop-mingw.adb
@@ -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).
diff --git a/gcc/ada/sem_cat.adb b/gcc/ada/sem_cat.adb
index 8ac23de0666..4d1794aeabe 100644
--- a/gcc/ada/sem_cat.adb
+++ b/gcc/ada/sem_cat.adb
@@ -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
diff --git a/gcc/ada/sem_ch10.adb b/gcc/ada/sem_ch10.adb
index b4c42ee6d37..5c65ab0e4f1 100644
--- a/gcc/ada/sem_ch10.adb
+++ b/gcc/ada/sem_ch10.adb
@@ -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);
diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb
index 97a8771f389..1c5654e7d7f 100644
--- a/gcc/ada/sem_ch4.adb
+++ b/gcc/ada/sem_ch4.adb
@@ -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