treepr.adb: Use new subtype N_Membership_Test
authorRobert Dewar <dewar@adacore.com>
Tue, 31 Oct 2006 17:51:20 +0000 (18:51 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 31 Oct 2006 17:51:20 +0000 (18:51 +0100)
commitc064e066027cb688449ce4e3fd28126fe45b0e11
tree8695b73eb0545f93e05e9fec3f16298bdbf07da0
parentff9625b0fa07810acdae6d36dbaca8f5afef9d05
treepr.adb: Use new subtype N_Membership_Test

2006-10-31  Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* treepr.adb: Use new subtype N_Membership_Test

        * checks.ads, checks.adb: Add definition for Validity_Check
        (Range_Or_Validity_Checks_Suppressed): New function
        (Ensure_Valid): Test Validity_Check suppressed
        (Insert_Valid_Check): Test Validity_Check suppressed
        (Insert_Valid_Check): Preserve Do_Range_Check flag
(Validity_Check_Range): New procedure
(Expr_Known_Valid): Result of membership test is always valid
(Selected_Range_Checks): Range checks cannot be applied to discriminants
by themselves. Disabling those checks must also be done for task types,
where discriminants may be used for the bounds of entry families.
(Apply_Address_Clause_Check): Remove side-effects if address expression
is non-static and is not the name of a declared constant.
(Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
Code cleanup and new error messages.
(Enable_Range_Check): Test for some cases of suppressed checks
(Generate_Index_Checks): Suppress index checks if index checks are
suppressed for array object or array type.
(Apply_Selected_Length_Checks): Give warning for compile-time detected
length check failure, even if checks are off.
(Ensure_Valid): Do not generate a check on an indexed component whose
prefix is a packed boolean array.
* checks.adb: (Alignment_Checks_Suppressed): New function
(Apply_Address_Clause_Check): New procedure, this is a completely
rewritten replacement for Apply_Alignment_Check
(Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
we request a discriminal value only in case of discriminants.
(Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
assignments where the target subtype is unconstrained and the target
object is a parameter or dereference (other aliased cases are known
to be unconstrained).

From-SVN: r118248
gcc/ada/checks.adb
gcc/ada/checks.ads
gcc/ada/treepr.adb