gcc/ada/
authorsam <sam@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 13 Nov 2007 19:12:57 +0000 (19:12 +0000)
committersam <sam@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 13 Nov 2007 19:12:57 +0000 (19:12 +0000)
* sem_prag.adb (Process_Convention): Move the test for the
entity on which the Convention pragma applies down to also
forbid pragma Convention on enumeration literals reached
through renamings.

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

gcc/ada/ChangeLog
gcc/ada/sem_prag.adb

index 1e8cd52..1c60120 100644 (file)
@@ -4,6 +4,11 @@
        explaining why in general 'Unchecked_Access must be used instead
        of 'Access.
 
+       * sem_prag.adb (Process_Convention): Move the test for the
+       entity on which the Convention pragma applies down to also
+       forbid pragma Convention on enumeration literals reached
+       through renamings.
+
 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
 
        * a-tasatt.adb: Revert previous change for this file as it will
index 65ee287..8195c8b 100644 (file)
@@ -2219,10 +2219,6 @@ package body Sem_Prag is
             Error_Pragma_Arg ("entity name required", Arg2);
          end if;
 
-         if Ekind (Entity (Id)) = E_Enumeration_Literal then
-            Error_Pragma ("enumeration literal not allowed for pragma%");
-         end if;
-
          E := Entity (Id);
 
          --  Go to renamed subprogram if present, since convention applies to
@@ -2267,6 +2263,10 @@ package body Sem_Prag is
               ("\supply appropriate type for&!", Arg2);
          end if;
 
+         if Ekind (E) = E_Enumeration_Literal then
+            Error_Pragma ("enumeration literal not allowed for pragma%");
+         end if;
+
          if Etype (E) = Any_Type
            or else Rep_Item_Too_Early (E, N)
          then