> > Section 9.5.1[1] states:
> >    "protected functions provide concurrent read-only access
> to the data." (in the P.O.)

This is the key to his problem. The next paragraph (9.5.1(2)) says that it
is illegal to write components of a protected object in a protected
function.

His code does so in four places. Thus it is out and out illegal. It doesn't
compile with GNAT, but it does compile with at least one other compiler I
tried. (And presumably the one he is using as well).

Why are compilers missing this error? Part of the reason is that the
paragraph in question (9.5.1(2)) is only tested in the ACATS (validation
suite) with an executable test. Which means that there is no check that
compilers actually detect the error specified in that paragraph. I've added
to the list of things for the ACAA to look at.


                        Randy Brukardt
                        ACAA Technical Agent.