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