diff options
author | Robert Dewar <dewar@adacore.com> | 2008-04-14 16:38:16 +0000 |
---|---|---|
committer | Samuel Tardieu <sam@gcc.gnu.org> | 2008-04-14 16:38:16 +0000 |
commit | 2efcad9f79ca7e4708a3f029b88e83b15eaa0727 (patch) | |
tree | a12a22906f62e38b164533479a2e897810f89e73 /gcc | |
parent | 96a791f748bc139f02aa8f874738370ca00632e5 (diff) | |
download | gcc-2efcad9f79ca7e4708a3f029b88e83b15eaa0727.zip gcc-2efcad9f79ca7e4708a3f029b88e83b15eaa0727.tar.gz gcc-2efcad9f79ca7e4708a3f029b88e83b15eaa0727.tar.bz2 |
sem_prag.adb (Analyze_Pragma, [...]): Extend error to every non-object and change error message.
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/sem_prag.adb | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/specs/linker_section.ads | 5 |
4 files changed, 16 insertions, 4 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 199fe29..fe278db 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,10 @@ 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. * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram directly. diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index c238367..6b81980 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -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 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8af67f7..5bf5cab 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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 diff --git a/gcc/testsuite/gnat.dg/specs/linker_section.ads b/gcc/testsuite/gnat.dg/specs/linker_section.ads index ae2d402..73e89aa 100644 --- a/gcc/testsuite/gnat.dg/specs/linker_section.ads +++ b/gcc/testsuite/gnat.dg/specs/linker_section.ads @@ -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; |