Rationale for Ada 2012
9.2.2 Inconsistencies with original Ada 2005
There are a small number of inconsistencies between
the original Ada 2005 and that resulting from various corrections.
1 — The description of
Dependent_Tag
has been changed to say that it must raise
Tag_Error
if there is more than one type that matches the requirements. (
AI-113,
3.9)
2 — A curious omission regarding checking arrays
allows a component in an aggregate whose value is given as <> even
if the component is outside the bounds. It is now clarified that
Constraint_Error
is raised. (
AI-37,
4.3.3)
3 — The first procedure
Split
in
Ada.Calendar.Formatting raises
Time_Error
for a value of exactly 86400.0. This was unspecified in Ada 2005. (
AI-238,
9.6.1)
4 — An address attribute with a prefix of a
generic formal subprogram whose actual parameter has convention
Intrinsic
now raises
Program_Error. (
AI-95,
13.3)
5 — User specified external tags that conflict
with other external tags now raise
Program_Error
or are illegal. (
AI-113,
13.3)
6 — The definition of
Set_Line
is corrected. As originally defined in Ada 95 and Ada 2005,
Set_Line(1)
could call
New_Line(0) which would raise
Constraint_Error
which is unhelpful. This was mentioned right at the end of the Postscript
in the Rationale for Ada 2005
[15].
(
AI-38,
A.10.5)
7 — The definitions of
Start_Search,
Search,
Delete_Directory,
and
Rename are clarified so that they raise
the correct exception if misused. (
AI-231,
A.16)
8 — If
Count = 0
for a container
Insert subprogram that has
a
Position parameter, the
Position
parameter is set to the value of the
Before
parameter by the call. The original wording remained silent on this.
(
AI-257,
A.18.3)
© 2011, 2012, 2013 John Barnes Informatics.
Sponsored in part by: