mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-02 05:50:26 +08:00
sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the clause if the array aggregate is surrounded by parentheses.
2005-09-01 Thomas Quinot <quinot@adacore.com> * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the clause if the array aggregate is surrounded by parentheses. From-SVN: r103880
This commit is contained in:
parent
48aa1f1a61
commit
27e6455d37
@ -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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user