Version 1.1 of ai12s/ai12-0202-1.txt

Unformatted version of ai12s/ai12-0202-1.txt version 1.1
Other versions for file ai12s/ai12-0202-1.txt

!standard 11.5(20)          16-10-03 AI12-0202-1/01
!class Amendment 10-10-03
!status work item 16-10-03
!status received 16-09-05
!priority Low
!difficulty Easy
!subject Tampering_Check
!summary
Add a new check name, Tampering_Check, that may be used in pragmas Suppress and Unsuppress.
!problem
The tampering checks required for the predefined containers packages are in practice very expensive, and compilers usually do not have enough information to optimize them away.
!proposal
(See Summary.)
!wording
Add after 11.5(20):
Tampering_Check
When an operation in an instance of a predefined container involves a tampering check, check that tampering with cursors or with elements is not currently prohibited (see A.18.2).
Add after A.18.2(264/2):
NOTES ... 50 Tampering checks can be suppressed via "pragma Suppress(Tampering_Check);" (see 11.5).
!discussion
This check is already implemented in the GNAT compiler, and has proved to be quite popular among users of the containers who care about efficiency.
!ASIS
No ASIS effect.
!ACATS test
An ACATS C-Test is needed to check that Tampering_Check is recognized.
!appendix

From: Bob Duff
Sent: Monday, September 5, 2016  2:47 PM

> It's only a month before the ARG homework is due for the Pittsburgh ARG
> 	Bob Duff:
>           AI to define suppress check name Tampering_Check (see 
> discussion of AI12-0111-1 in meeting #54)

OK, here it is:

[This is version /01 of the AI - Editor.]

****************************************************************

From: Jeff Cousins
Sent: Thursday, September 8, 2016  7:40 AM

Seems straightforward enough.

****************************************************************


Questions? Ask the ACAA Technical Agent