mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-14 05:20:25 +08:00
freeze.adb (Freeze_Entity, [...]): Add a guard to make sure that the Etype of a component of the corresponding...
2014-07-29 Robert Dewar <dewar@adacore.com> * freeze.adb (Freeze_Entity, Concurrent_Type case): Add a guard to make sure that the Etype of a component of the corresponding record type is present before trying to freeze it. * sem_ch5.adb: Minor reformatting. From-SVN: r213165
This commit is contained in:
parent
b8b2d9829a
commit
a08bf2de29
@ -1,3 +1,10 @@
|
||||
2014-07-29 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* freeze.adb (Freeze_Entity, Concurrent_Type case): Add a guard
|
||||
to make sure that the Etype of a component of the corresponding
|
||||
record type is present before trying to freeze it.
|
||||
* sem_ch5.adb: Minor reformatting.
|
||||
|
||||
2014-07-29 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* exp_attr.adb, types.ads, types.h, exp_ch11.adb, a-except.adb,
|
||||
|
@ -4710,13 +4710,19 @@ package body Freeze is
|
||||
Freeze_And_Append (Comp, N, Result);
|
||||
|
||||
elsif (Ekind (Comp)) /= E_Function then
|
||||
if Is_Itype (Etype (Comp))
|
||||
and then Underlying_Type (Scope (Etype (Comp))) = E
|
||||
then
|
||||
Undelay_Type (Etype (Comp));
|
||||
end if;
|
||||
|
||||
Freeze_And_Append (Etype (Comp), N, Result);
|
||||
-- The guard on the presence of the Etype seems to be needed
|
||||
-- for some CodePeer (-gnatcC) cases, but not clear why???
|
||||
|
||||
if Present (Etype (Comp)) then
|
||||
if Is_Itype (Etype (Comp))
|
||||
and then Underlying_Type (Scope (Etype (Comp))) = E
|
||||
then
|
||||
Undelay_Type (Etype (Comp));
|
||||
end if;
|
||||
|
||||
Freeze_And_Append (Etype (Comp), N, Result);
|
||||
end if;
|
||||
end if;
|
||||
|
||||
Next_Entity (Comp);
|
||||
|
@ -3184,6 +3184,7 @@ package body Sem_Ch5 is
|
||||
|
||||
-- We skip this step if we are not in code generation mode
|
||||
-- or CodePeer mode.
|
||||
|
||||
-- This is the one case where we remove dead code in the
|
||||
-- semantics as opposed to the expander, and we do not want
|
||||
-- to remove code if we are not in code generation mode,
|
||||
|
Loading…
x
Reference in New Issue
Block a user