From 27e6455d37aad17fccb935a6643ad976b61068f3 Mon Sep 17 00:00:00 2001 From: Thomas Quinot Date: Mon, 5 Sep 2005 09:59:42 +0200 Subject: sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the clause if the array aggregate is surrounded by parentheses. 2005-09-01 Thomas Quinot * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the clause if the array aggregate is surrounded by parentheses. From-SVN: r103880 --- gcc/ada/sem_ch13.adb | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'gcc') diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb index 10ae9e3..c158660 100644 --- a/gcc/ada/sem_ch13.adb +++ b/gcc/ada/sem_ch13.adb @@ -1488,6 +1488,14 @@ package body Sem_Ch13 is Error_Msg_N ("enumeration rep clause not allowed for this type", N); return; + -- Check that the expression is a proper aggregate (no parentheses) + + elsif Paren_Count (Aggr) /= 0 then + Error_Msg + ("extra parentheses surrounding aggregate not allowed", + First_Sloc (Aggr)); + return; + -- All tests passed, so set rep clause in place else @@ -1500,10 +1508,6 @@ package body Sem_Ch13 is -- normal expansion activities, and a number of special semantic -- rules apply (including the component type being any integer type) - -- Badent signals that we found some incorrect entries processing - -- the list. The final checks for completeness and ordering are - -- skipped in this case. - Elit := First_Literal (Enumtype); -- First the positional entries if any @@ -1518,9 +1522,12 @@ package body Sem_Ch13 is Val := Static_Integer (Expr); + -- Err signals that we found some incorrect entries processing + -- the list. The final checks for completeness and ordering are + -- skipped in this case. + if Val = No_Uint then Err := True; - elsif Val < Lo or else Hi < Val then Error_Msg_N ("value outside permitted range", Expr); Err := True; @@ -3124,7 +3131,7 @@ package body Sem_Ch13 is New_Reference_To ( Designated_Type (Etype (F)), Loc)))), - Subtype_Mark => + Result_Definition => New_Reference_To (Etyp, Loc)); end Build_Spec; -- cgit v1.1