* sem_prag.adb (pragma Ident): Pass --identification= vice
IDENTIFICATION=
* gnatlink.adb (Linker_Options): Look for --identification= vice
IDENTIFICATION=
2010-09-09 Gary Dismukes <dismukes@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference, case Attribute_Old): When
inserting and analyzing the object declaration for the temporary object
created to hold a 'Old value, push the scope for the subprogram where
the object is inserted, so that its Scope (and that of related objects)
will be set properly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164088
138bc75d-0d04-0410-961f-
82ee72b054a4
+2010-09-09 Doug Rupp <rupp@adacore.com>
+
+ * sem_prag.adb (pragma Ident): Pass --identification= vice
+ IDENTIFICATION=
+ * gnatlink.adb (Linker_Options): Look for --identification= vice
+ IDENTIFICATION=
+
+2010-09-09 Gary Dismukes <dismukes@adacore.com>
+
+ * exp_attr.adb (Expand_N_Attribute_Reference, case Attribute_Old): When
+ inserting and analyzing the object declaration for the temporary object
+ created to hold a 'Old value, push the scope for the subprogram where
+ the object is inserted, so that its Scope (and that of related objects)
+ will be set properly.
+
2010-09-09 Vincent Celier <celier@adacore.com>
* prj.adb (Get_Object_Directory): Return object directory display name
and then Chars (Defining_Entity (Subp)) /= Name_uPostconditions;
end loop;
- -- Insert the assignment at the start of the declarations
+ -- Insert the initialized object declaration at the start of the
+ -- subprogram's declarations.
Asn_Stm :=
Make_Object_Declaration (Loc,
Object_Definition => New_Occurrence_Of (Etype (N), Loc),
Expression => Pref);
+ -- Push the subprogram's scope, so that the object will be analyzed
+ -- in that context (rather than the context of the Precondition
+ -- subprogram) and will have its Scope set properly.
+
+ if Present (Corresponding_Spec (Subp)) then
+ Push_Scope (Corresponding_Spec (Subp));
+ else
+ Push_Scope (Defining_Entity (Subp));
+ end if;
+
if Is_Empty_List (Declarations (Subp)) then
Set_Declarations (Subp, New_List (Asn_Stm));
Analyze (Asn_Stm);
Insert_Action (First (Declarations (Subp)), Asn_Stm);
end if;
+ Pop_Scope;
+
Rewrite (N, New_Occurrence_Of (Tnn, Loc));
end Old;
-- Remove duplicate IDENTIFICATION directives (VMS)
- if Linker_Options.Table (J)'Length > 27
- and then Linker_Options.Table (J) (1 .. 28)
- = "--for-linker=IDENTIFICATION="
+ if Linker_Options.Table (J)'Length > 29
+ and then Linker_Options.Table (J) (1 .. 30)
+ = "--for-linker=--identification="
then
if IDENT_Op then
Linker_Options.Table (J .. Linker_Options.Last - 1) :=
else
-- In VMS, the effect of IDENT is achieved by passing
- -- IDENTIFICATION=name as a --for-linker switch.
+ -- --identification=name as a --for-linker switch.
if OpenVMS_On_Target then
Start_String;
Store_String_Chars
- ("--for-linker=IDENTIFICATION=");
+ ("--for-linker=--identification=");
String_To_Name_Buffer (Strval (Str));
Store_String_Chars (Name_Buffer (1 .. Name_Len));
-- associated with a with'd package.
Replace_Linker_Option_String
- (End_String, "--for-linker=IDENTIFICATION=");
+ (End_String, "--for-linker=--identification=");
end if;
Set_Ident_String (Current_Sem_Unit, Str);