aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Quinot <quinot@adacore.com>2005-09-05 09:59:42 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2005-09-05 09:59:42 +0200
commit27e6455d37aad17fccb935a6643ad976b61068f3 (patch)
treec70e7efa1e98dcf3b2b27b56c326c277b54a16d4 /gcc
parent48aa1f1a6180e8d826ff5efa4a637477be56be48 (diff)
downloadgcc-27e6455d37aad17fccb935a6643ad976b61068f3.zip
gcc-27e6455d37aad17fccb935a6643ad976b61068f3.tar.gz
gcc-27e6455d37aad17fccb935a6643ad976b61068f3.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/sem_ch13.adb19
1 files changed, 13 insertions, 6 deletions
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;