exp_ch4.adb (Expand_N_In): Replace test of expression in its own type by valid test...
authorRobert Dewar <dewar@adacore.com>
Mon, 5 Sep 2005 07:47:26 +0000 (09:47 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 5 Sep 2005 07:47:26 +0000 (09:47 +0200)
commit630d30e96d138be05bea2e2769026ef819fb417d
treec73b6d3daab6c005edab3f279a15da80c4f077c3
parent1a2c495da918ad782b233126773e4fc34bdacbe5
exp_ch4.adb (Expand_N_In): Replace test of expression in its own type by valid test and generate warning.

2005-09-01  Robert Dewar  <dewar@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>
    Javier Miranda  <miranda@adacore.com>

* exp_ch4.adb (Expand_N_In): Replace test of expression in its own
type by valid test and generate warning.
(Tagged_Membership): Generate call to the run-time
subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
Change formal name Subtype_Mark to Result_Definition in several calls to
Make_Function_Specification.
(Expand_Allocator_Expression): Add tests for suppression of the AI-344
check for proper accessibility of the operand of a class-wide allocator.
The check can be left out if checks are suppressed or if the expression
has a specific tagged type whose level is known to be safe.

* exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
generates the run-time check associated with null-excluding entities.
(Expand_N_Return_Statement): Add tests to determine if the accessibility
check on the level of the return expression of a class-wide function
can be elided. The check usually isn't needed if the expression has a
specific type (unless it's a conversion or a formal parameter). Also
add a test for whether accessibility checks are suppressed. Augment
the comments to describe the conditions for performing the check.

From-SVN: r103849
gcc/ada/exp_ch4.adb
gcc/ada/exp_ch5.adb