aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2009-04-15 10:48:39 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2009-04-15 10:48:39 +0200
commitb8aadf012f8eea411209f89b9366bf9af219ccc3 (patch)
tree0202fadd4d6c949ffd9cc3e229f03dd3cc43a67b
parenta808ba1bfb211375b09524976ce1d92950b45411 (diff)
downloadgcc-b8aadf012f8eea411209f89b9366bf9af219ccc3.zip
gcc-b8aadf012f8eea411209f89b9366bf9af219ccc3.tar.gz
gcc-b8aadf012f8eea411209f89b9366bf9af219ccc3.tar.bz2
[multiple changes]
2009-04-15 Gary Dismukes <dismukes@adacore.com> * a-tasatt.adb: Fix typo, plus minor reformatting * sem_ch3.ads: Add missing hyphen ("class wide" => "class-wide"). * sem_ch10.adb: Add missing hyphen ("use visible" => "use-visible"). 2009-04-15 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Analyze_Private_Extension_Declaration): Verify that a private extension whose parent is a synchronized interface carries an explicit synchronized keyword. From-SVN: r146084
-rw-r--r--gcc/ada/ChangeLog14
-rw-r--r--gcc/ada/a-tasatt.adb6
-rw-r--r--gcc/ada/sem_ch10.adb2
-rw-r--r--gcc/ada/sem_ch3.adb12
-rw-r--r--gcc/ada/sem_ch3.ads4
5 files changed, 32 insertions, 6 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index a068754..caf4b88 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,17 @@
+2009-04-15 Gary Dismukes <dismukes@adacore.com>
+
+ * a-tasatt.adb: Fix typo, plus minor reformatting
+
+ * sem_ch3.ads: Add missing hyphen ("class wide" => "class-wide").
+
+ * sem_ch10.adb: Add missing hyphen ("use visible" => "use-visible").
+
+2009-04-15 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch3.adb (Analyze_Private_Extension_Declaration): Verify that a
+ private extension whose parent is a synchronized interface carries an
+ explicit synchronized keyword.
+
2009-04-15 Thomas Quinot <quinot@adacore.com>
* exp_smem.adb (Make_Shared_Var_Procs): For a protected type,
diff --git a/gcc/ada/a-tasatt.adb b/gcc/ada/a-tasatt.adb
index 10d29b6..b1a6b2d 100644
--- a/gcc/ada/a-tasatt.adb
+++ b/gcc/ada/a-tasatt.adb
@@ -719,9 +719,9 @@ begin
In_Use := In_Use or Two_To_J;
Local.Index := J;
- -- This unchecked conversions can give a warning when the
- -- alignment is incorrect, but it will not be used in such a
- -- case anyway, so the warning can be safely ignored.
+ -- This unchecked conversion can give a warning when the
+ -- alignment is incorrect, but it will not be used in such
+ -- a case anyway, so the warning can be safely ignored.
pragma Warnings (Off);
To_Attribute_Handle (Local.Initial_Value'Access).all :=
diff --git a/gcc/ada/sem_ch10.adb b/gcc/ada/sem_ch10.adb
index a4a9254..a5a25fd 100644
--- a/gcc/ada/sem_ch10.adb
+++ b/gcc/ada/sem_ch10.adb
@@ -1292,7 +1292,7 @@ package body Sem_Ch10 is
-- the implicit with's on parent units.
-- Skip use clauses at this stage, since we don't want to do any
- -- installing of potentially use visible entities until we
+ -- installing of potentially use-visible entities until we
-- actually install the complete context (in Install_Context).
-- Otherwise things can get installed in the wrong context.
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index 620be02..b577aa3 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -3337,6 +3337,18 @@ package body Sem_Ch3 is
Error_Msg_NE ("parent type& of limited extension must be limited",
N, Parent_Type);
end if;
+
+ -- A consequence of 3.9.4 (6/2) and 7.3 (2.2/2) is that a private
+ -- extension with a synchronized parent must be explicitly declared
+ -- synchronized, because the full view will be a synchronized type.
+
+ elsif Is_Interface (Parent_Type)
+ and then Is_Synchronized_Interface (Parent_Type)
+ and then not Synchronized_Present (N)
+ then
+ Error_Msg_NE
+ ("private extension of& must be explicitly synchronized",
+ N, Parent_Type);
end if;
end Analyze_Private_Extension_Declaration;
diff --git a/gcc/ada/sem_ch3.ads b/gcc/ada/sem_ch3.ads
index 076966a..93750701 100644
--- a/gcc/ada/sem_ch3.ads
+++ b/gcc/ada/sem_ch3.ads
@@ -177,10 +177,10 @@ package Sem_Ch3 is
procedure Make_Class_Wide_Type (T : Entity_Id);
-- A Class_Wide_Type is created for each tagged type definition. The
- -- attributes of a class wide type are inherited from those of the type T.
+ -- attributes of a class-wide type are inherited from those of the type T.
-- If T is introduced by a private declaration, the corresponding class
-- wide type is created at the same time, and therefore there is a private
- -- and a full declaration for the class wide type as well.
+ -- and a full declaration for the class-wide type as well.
function OK_For_Limited_Init_In_05 (Exp : Node_Id) return Boolean;
-- Presuming Exp is an expression of an inherently limited type, returns