+2014-07-31 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_attr.adb (Analyze_Attribute, case 'Old): The reference is
+ legal if within an aspect specification for a generic subprogram.
+
2014-07-31 Javier Miranda <miranda@adacore.com>
* gnat1drv.adb (Back_End_Inlining): Set to false if
-- process of being preanalyzed. Perform the semantic checks now
-- before the pragma is relocated and/or expanded.
- if In_Spec_Expression then
+ -- For a generic subprogram, postconditions are preanalyzed as well
+ -- for name capture, and still appear within an aspect spec.
+
+ if In_Spec_Expression or Inside_A_Generic then
Prag := N;
while Present (Prag)
and then not Nkind_In (Prag, N_Aspect_Specification,
end loop;
-- In ASIS mode, the aspect itself is analyzed, in addition to the
- -- corresponding pragma. Do not issue errors when analyzing the
- -- aspect.
+ -- corresponding pragma. Don't issue errors when analyzing aspect.
- if Nkind (Prag) = N_Aspect_Specification then
+ if Nkind (Prag) = N_Aspect_Specification
+ and then Chars (Identifier (Prag)) = Name_Post
+ then
null;
-- In all other cases the related context must be a pragma