summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Quinot <quinot@adacore.com>2005-07-04 15:27:43 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2005-07-04 15:27:43 +0200
commit64dd539571685b9a8b052352241b1f110f6d7002 (patch)
tree57f6cd3f5dd0a284b7b210cd135226b39aaa9d60
parent3b641023b36ac88164d64851ee5e45fc365937cc (diff)
downloadgcc-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.adb15
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;