diff options
author | Thomas Quinot <quinot@adacore.com> | 2005-07-04 15:27:43 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2005-07-04 15:27:43 +0200 |
commit | 64dd539571685b9a8b052352241b1f110f6d7002 (patch) | |
tree | 57f6cd3f5dd0a284b7b210cd135226b39aaa9d60 | |
parent | 3b641023b36ac88164d64851ee5e45fc365937cc (diff) | |
download | gcc-64dd539571685b9a8b052352241b1f110f6d7002.tar.gz |
exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for Itypes.
2005-07-04 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
Itypes. Itypes are really unexpected there.
(Build_TypeCode_Function): Generalise special processing for Itypes to
handle the case of numeric implicit base types as well as enumerated
ones.
From-SVN: r101578
-rw-r--r-- | gcc/ada/exp_dist.adb | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/gcc/ada/exp_dist.adb b/gcc/ada/exp_dist.adb index f1dfd342c92..b3801f61d88 100644 --- a/gcc/ada/exp_dist.adb +++ b/gcc/ada/exp_dist.adb @@ -9638,11 +9638,6 @@ package body Exp_Dist is U_Type := Base_Type (U_Type); end if; - if Is_Itype (U_Type) then - return Build_TypeCode_Call - (Loc, Associated_Node_For_Itype (U_Type), Decls); - end if; - if U_Type = Standard_Boolean then Lib_RE := RE_TC_B; @@ -10105,18 +10100,12 @@ package body Exp_Dist is and then not Is_Tagged_Type (Typ) then declare - D_Node : constant Node_Id := Declaration_Node (Typ); Parent_Type : Entity_Id := Etype (Typ); begin - if Is_Enumeration_Type (Typ) - and then Nkind (D_Node) = N_Subtype_Declaration - and then Nkind (Original_Node (D_Node)) - /= N_Subtype_Declaration - then + if Is_Itype (Parent_Type) then - -- Parent_Type is the implicit intermediate base type - -- created by Build_Derived_Enumeration_Type. + -- Skip implicit base type Parent_Type := Etype (Parent_Type); end if; |