diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2022-09-30 16:56:37 +0200 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2022-10-06 11:22:48 +0200 |
commit | 3da783c5f93d10396d9ad5bf1f3fc68241f50850 (patch) | |
tree | 17f563c946de1aaa8717f6af1a628dcb44f86d7e | |
parent | c3d6d603956ecd20567924888bae55af4cf99c6a (diff) | |
download | gcc-3da783c5f93d10396d9ad5bf1f3fc68241f50850.zip gcc-3da783c5f93d10396d9ad5bf1f3fc68241f50850.tar.gz gcc-3da783c5f93d10396d9ad5bf1f3fc68241f50850.tar.bz2 |
ada: Fix inserting of validity checks in lock-free protected subprograms
Validity checks for statements in a lock-free implementation of
protected subprogram were wrongly inserted in front of the original
statements. This happened because the lock-free implementation was
created as a shallow copy, where only the protected body statements were
copied while its children still had the Parent pointing to the original
statements.
gcc/ada/
* exp_ch9.adb (Build_Lock_Free_Protected_Subprogram_Body): Replace
shallow copy of protected statements with a deep copy.
-rw-r--r-- | gcc/ada/exp_ch9.adb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ada/exp_ch9.adb b/gcc/ada/exp_ch9.adb index 8abff55..decf617 100644 --- a/gcc/ada/exp_ch9.adb +++ b/gcc/ada/exp_ch9.adb @@ -2797,7 +2797,7 @@ package body Exp_Ch9 is Expected_Comp : Entity_Id; Stmt : Node_Id; Stmts : List_Id := - New_Copy_List (Statements (Hand_Stmt_Seq)); + New_Copy_List_Tree (Statements (Hand_Stmt_Seq)); Typ_Size : Int; Unsigned : Entity_Id; |