2013-07-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications): For
pre/postconditions copy the expression to the generated pragma,
to avoid sharing between the original aspect and the pragma node,
because in ASIS_Mode both will be independently analyzed.
From-SVN: r200710
+2013-07-05 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch13.adb (Analyze_Aspect_Specifications): For
+ pre/postconditions copy the expression to the generated pragma,
+ to avoid sharing between the original aspect and the pragma node,
+ because in ASIS_Mode both will be independently analyzed.
+
2013-07-05 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Build_Variant_Record_Equality): Add pairs of
end loop;
end if;
- -- Build the precondition/postcondition pragma
+ -- Build the precondition/postcondition pragma. We copy
+ -- the expression to avoid sharing between the original
+ -- aspect and the pragma node, because in ASIS_Mode both
+ -- will be independently analyzed.
Make_Aitem_Pragma
(Pragma_Argument_Associations => New_List (
Make_Pragma_Argument_Association (Eloc,
Chars => Name_Check,
- Expression => Relocate_Node (Expr))),
+ Expression => New_Copy_Tree (Expr))),
Pragma_Name => Pname);
-- Add message unless exception messages are suppressed