comparison gcc/ada/exp_smem.adb @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
4 -- -- 4 -- --
5 -- E X P _ S M E M -- 5 -- E X P _ S M E M --
6 -- -- 6 -- --
7 -- B o d y -- 7 -- B o d y --
8 -- -- 8 -- --
9 -- Copyright (C) 1998-2014, Free Software Foundation, Inc. -- 9 -- Copyright (C) 1998-2018, Free Software Foundation, Inc. --
10 -- -- 10 -- --
11 -- GNAT is free software; you can redistribute it and/or modify it under -- 11 -- GNAT is free software; you can redistribute it and/or modify it under --
12 -- terms of the GNU General Public License as published by the Free Soft- -- 12 -- terms of the GNU General Public License as published by the Free Soft- --
13 -- ware Foundation; either version 3, or (at your option) any later ver- -- 13 -- ware Foundation; either version 3, or (at your option) any later ver- --
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
205 -- Not in a transient scope yet: insert Vde as an action on N prior to 205 -- Not in a transient scope yet: insert Vde as an action on N prior to
206 -- establishing one. 206 -- establishing one.
207 207
208 else 208 else
209 Insert_Action (N, Vde); 209 Insert_Action (N, Vde);
210 Establish_Transient_Scope (N, Sec_Stack => False); 210 Establish_Transient_Scope (N, Manage_Sec_Stack => False);
211 end if; 211 end if;
212 212
213 -- Mark object as locked in the current (transient) scope 213 -- Mark object as locked in the current (transient) scope
214 214
215 Append_New_Elmt 215 Append_New_Elmt
253 --------------------- 253 ---------------------
254 -- Add_Write_After -- 254 -- Add_Write_After --
255 --------------------- 255 ---------------------
256 256
257 procedure Add_Write_After (N : Node_Id) is 257 procedure Add_Write_After (N : Node_Id) is
258 Ent : constant Entity_Id := Entity (N);
258 Loc : constant Source_Ptr := Sloc (N); 259 Loc : constant Source_Ptr := Sloc (N);
259 Ent : constant Entity_Id := Entity (N);
260 Par : constant Node_Id := Insert_Node; 260 Par : constant Node_Id := Insert_Node;
261
261 begin 262 begin
262 if Present (Shared_Var_Procs_Instance (Ent)) then 263 if Present (Shared_Var_Procs_Instance (Ent)) then
263 if Nkind (Insert_Node) = N_Function_Call then 264 if Nkind (Insert_Node) = N_Function_Call then
264 Establish_Transient_Scope (Insert_Node, Sec_Stack => False); 265 Establish_Transient_Scope (Insert_Node, Manage_Sec_Stack => False);
266
265 Store_After_Actions_In_Scope (New_List ( 267 Store_After_Actions_In_Scope (New_List (
266 Build_Shared_Var_Proc_Call (Loc, Ent, Name_Write))); 268 Build_Shared_Var_Proc_Call (Loc, Ent, Name_Write)));
267 else 269 else
268 Insert_After_And_Analyze (Par, 270 Insert_After_And_Analyze (Par,
269 Build_Shared_Var_Proc_Call (Loc, Ent, Name_Write)); 271 Build_Shared_Var_Proc_Call (Loc, Ent, Name_Write));