aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRobert Dewar <dewar@adacore.com>2008-04-14 16:38:16 +0000
committerSamuel Tardieu <sam@gcc.gnu.org>2008-04-14 16:38:16 +0000
commit2efcad9f79ca7e4708a3f029b88e83b15eaa0727 (patch)
treea12a22906f62e38b164533479a2e897810f89e73 /gcc
parent96a791f748bc139f02aa8f874738370ca00632e5 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/ada/sem_prag.adb6
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gnat.dg/specs/linker_section.ads5
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;