sem_prag.adb (Analyze_Pragma, [...]): Extend error to every non-object and change...
authorRobert Dewar <dewar@adacore.com>
Mon, 14 Apr 2008 16:38:16 +0000 (16:38 +0000)
committerSamuel Tardieu <sam@gcc.gnu.org>
Mon, 14 Apr 2008 16:38:16 +0000 (16:38 +0000)
2008-04-14  Robert Dewar  <dewar@adacore.com>

    gcc/ada/
* sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
to every non-object and change error message.

    gcc/testsuite/
* gnat.dg/specs/linker_section.ads: Check for more error conditions.

From-SVN: r134280

gcc/ada/ChangeLog
gcc/ada/sem_prag.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/specs/linker_section.ads

index 199fe294a832aa767536b99fcefb55dc2df4d414..fe278db8a5adca926469c772135c810b5da4c9a6 100644 (file)
@@ -1,3 +1,8 @@
+2008-04-14  Robert Dewar  <dewar@adacore.com>
+
+       * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
+       to every non-object and change error message.
+
 2008-04-14  Robert Dewar  <dewar@adacore.com>
 
        * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
index c238367ba835ab3f513f6811b004064f5356b191..6b8198037053f3e85d36600487d316450dfd74a4 100644 (file)
@@ -8450,10 +8450,10 @@ package body Sem_Prag is
             Check_Arg_Is_Library_Level_Local_Name (Arg1);
             Check_Arg_Is_Static_Expression (Arg2, Standard_String);
 
-            --  This pragma does not apply to types
+            --  This pragma applies only to objects
 
-            if Is_Type (Entity (Expression (Arg1))) then
-               Error_Pragma_Arg ("pragma% cannot apply to type", Arg1);
+            if not Is_Object (Entity (Expression (Arg1))) then
+               Error_Pragma_Arg ("pragma% applies only to objects", Arg1);
             end if;
 
             --  The only processing required is to link this item on to the
index 8af67f7b0b75409313531151feac7fe6cf883cc0..5bf5cab06dc2a2577b1f137311ad0a1412b76396 100644 (file)
@@ -1,3 +1,7 @@
+2008-04-14  Robert Dewar  <dewar@adacore.com>
+
+       * gnat.dg/specs/linker_section.ads: Check for more error conditions.
+
 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
 
        PR ada/18680
index ae2d4029cf9e3153ecf3a8908c661408baaf9870..73e89aa48e10279ba838c8f3d56a2c7dde67ec32 100644 (file)
@@ -3,8 +3,11 @@ package Linker_Section is
    pragma Linker_Section (Entity  => Data1,
                           Section => ".eeprom");
    type EEPROM_String is new String;
-   pragma Linker_Section (Entity  => EEPROM_String, -- { dg-error "type" }
+   pragma Linker_Section (Entity  => EEPROM_String, -- { dg-error "objects" }
                           Section => ".eeprom");
    Data2 : constant EEPROM_String := "12345678901234567";
+   package Inner is end;
+   pragma Linker_Section (Entity  => Inner,        -- { dg-error "objects" }
+                          Section => ".eeprom");
 end Linker_Section;