OSDN Git Service

2005-07-07 Javier Miranda <miranda@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 Jul 2005 09:46:16 +0000 (09:46 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 Jul 2005 09:46:16 +0000 (09:46 +0000)
commitb26b6268ed6f1a9452d54d9e19342e620235f4ca
treecb60a98bd8b2a8eee5b74c882cddea07b285a3ad
parente1c20931c7c1473851ea4b05e4d1aec6a74ec5aa
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
gcc/ada/freeze.adb
gcc/ada/par-ch3.adb
gcc/ada/sem_attr.adb
gcc/ada/sem_ch3.adb
gcc/ada/sem_ch5.adb
gcc/ada/sem_ch6.adb
gcc/ada/sem_res.adb
gcc/ada/sinfo.adb
gcc/ada/sinfo.ads