OSDN Git Service

2005-09-01 Thomas Quinot <quinot@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Sep 2005 07:59:42 +0000 (07:59 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Sep 2005 07:59:42 +0000 (07:59 +0000)
* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
clause if the array aggregate is surrounded by parentheses.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103880 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/sem_ch13.adb

index 10ae9e3..c158660 100644 (file)
@@ -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;