[multiple changes]

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.

From-SVN: r182535
This commit is contained in:
Arnaud Charlet 2011-12-20 14:52:22 +01:00
parent 54c04d6ca5
commit a68d415b1d
11 changed files with 570 additions and 11 deletions

View File

@ -1,3 +1,24 @@
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,

View 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) \

View 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;

View 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

38
gcc/ada/s-dimkio.ads Normal file
View File

@ -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);

324
gcc/ada/s-dimmks.ads Normal file
View File

@ -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;

168
gcc/ada/s-dmotpr.ads Normal file
View File

@ -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;

View 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).

View 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

View 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);

View 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