gnat_rm.texi: Add note on Old giving warning when applied to constant

2008-05-28  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Add note on Old giving warning when applied to constant

	* sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
	a constant

From-SVN: r136078
This commit is contained in:
Robert Dewar 2008-05-28 15:05:35 +02:00 committed by Arnaud Charlet
parent 6765b31061
commit 71a555b3b9
2 changed files with 11 additions and 0 deletions

View File

@ -5803,6 +5803,10 @@ package body Old_Pkg is
end Old_Pkg;
@end smallexample
@noindent
Note that it is allowed to apply 'Old to a constant entity, but this will
result in a warning, since the old and new values will always be the same.
@node Passed_By_Reference
@unnumberedsec Passed_By_Reference
@cindex Parameters, when passed by reference

View File

@ -3501,6 +3501,13 @@ package body Sem_Attr is
Error_Attr ("attribute % cannot apply to limited objects", P);
end if;
if Is_Entity_Name (P)
and then Is_Constant_Object (Entity (P))
then
Error_Msg_N
("?attribute Old applied to constant has no effect", P);
end if;
-- Check that the expression does not refer to local entities
Check_Local : declare