diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-12-20 13:52:22 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-12-20 13:52:22 +0000 |
commit | 1926e1a1fee2b38ed8048096c78fdf70d92f9d76 (patch) | |
tree | 7e2bfaa4402860f87df1ba84a54999ac4d758f05 | |
parent | 44705307fb48554c8f72c6ea330327954e182ebb (diff) | |
download | gcc-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/ChangeLog | 21 | ||||
-rw-r--r-- | gcc/ada/Makefile.rtl | 3 | ||||
-rw-r--r-- | gcc/ada/a-cdlili.ads | 4 | ||||
-rw-r--r-- | gcc/ada/impunit.adb | 3 | ||||
-rw-r--r-- | gcc/ada/s-dimkio.ads | 38 | ||||
-rw-r--r-- | gcc/ada/s-dimmks.ads | 324 | ||||
-rw-r--r-- | gcc/ada/s-dmotpr.ads | 168 | ||||
-rw-r--r-- | gcc/ada/s-taprop-mingw.adb | 5 | ||||
-rw-r--r-- | gcc/ada/sem_cat.adb | 5 | ||||
-rw-r--r-- | gcc/ada/sem_ch10.adb | 4 | ||||
-rw-r--r-- | gcc/ada/sem_ch4.adb | 6 |
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 |