summaryrefslogtreecommitdiff
path: root/gcc/ada/sinfo.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-07 09:46:16 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-07 09:46:16 +0000
commitb26b6268ed6f1a9452d54d9e19342e620235f4ca (patch)
treecb60a98bd8b2a8eee5b74c882cddea07b285a3ad /gcc/ada/sinfo.adb
parente1c20931c7c1473851ea4b05e4d1aec6a74ec5aa (diff)
downloadgcc-b26b6268ed6f1a9452d54d9e19342e620235f4ca.tar.gz
2005-07-07 Javier Miranda <miranda@adacore.com>
* freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types. * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete types: -- type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED]; -- * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong use of tag incomplete types. * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to give support to tagged incomplete types. * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the expression is a discriminant reference and its type is private, as can happen within a stream operation for a mutable record, use the full view of the type to resolve the case alternatives. (Analyze_Assignment): Check wrong dereference of incomplete types. * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete types. * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged incomplete types. * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to N_Incomplete_Type_Declaration nodes. * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute Tag_Present to give support to tagged incomplete types: -- type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED]; -- git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101695 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sinfo.adb')
-rw-r--r--gcc/ada/sinfo.adb4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/ada/sinfo.adb b/gcc/ada/sinfo.adb
index 7a223e42cf6..553e7891086 100644
--- a/gcc/ada/sinfo.adb
+++ b/gcc/ada/sinfo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2005, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2005 Free Software Foundation, Inc. --
-- --
-- GNAT 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- --
@@ -2450,6 +2450,7 @@ package body Sinfo is
begin
pragma Assert (False
or else NT (N).Nkind = N_Formal_Private_Type_Definition
+ or else NT (N).Nkind = N_Incomplete_Type_Declaration
or else NT (N).Nkind = N_Private_Type_Declaration
or else NT (N).Nkind = N_Record_Definition
or else NT (N).Nkind = N_With_Type_Clause);
@@ -5001,6 +5002,7 @@ package body Sinfo is
begin
pragma Assert (False
or else NT (N).Nkind = N_Formal_Private_Type_Definition
+ or else NT (N).Nkind = N_Incomplete_Type_Declaration
or else NT (N).Nkind = N_Private_Type_Declaration
or else NT (N).Nkind = N_Record_Definition
or else NT (N).Nkind = N_With_Type_Clause);