aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_ch3.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/sem_ch3.adb')
-rw-r--r--gcc/ada/sem_ch3.adb15
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index 6af9419..86b6e0d 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -2047,10 +2047,23 @@ package body Sem_Ch3 is
end if;
end if;
+ -- Avoid reporting spurious errors if the component is initialized with
+ -- a raise expression (which is legal in any expression context)
+
+ if Present (E)
+ and then
+ (Nkind (E) = N_Raise_Expression
+ or else (Nkind (E) = N_Qualified_Expression
+ and then Nkind (Expression (E)) = N_Raise_Expression))
+ then
+ null;
+
-- The parent type may be a private view with unknown discriminants,
-- and thus unconstrained. Regular components must be constrained.
- if not Is_Definite_Subtype (T) and then Chars (Id) /= Name_uParent then
+ elsif not Is_Definite_Subtype (T)
+ and then Chars (Id) /= Name_uParent
+ then
if Is_Class_Wide_Type (T) then
Error_Msg_N
("class-wide subtype with unknown discriminants" &