diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-07-31 10:11:39 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-07-31 10:11:39 +0000 |
commit | 1f6c912383404fa17f389e8a71552060d5a05fa8 (patch) | |
tree | a4b1b0aa22f1442f5a2f2a3cfbd7f7a0b8187370 | |
parent | aa0a69abb127974bd64b206be9529f49910d7f82 (diff) | |
download | gcc-1f6c912383404fa17f389e8a71552060d5a05fa8.tar.gz |
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Make_Index): Reject properly the use of 'Length
in a discrete range, when 'range was probably intended.
2014-07-31 Robert Dewar <dewar@adacore.com>
* sem_warn.adb, sem_warn.ads (Has_Junk_Name): Moved from body to spec.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213339 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ada/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/ada/sem_ch3.adb | 10 | ||||
-rw-r--r-- | gcc/ada/sem_warn.adb | 10 | ||||
-rw-r--r-- | gcc/ada/sem_warn.ads | 16 |
4 files changed, 32 insertions, 13 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index dbfad40a48c..c4d668a1beb 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,12 @@ +2014-07-31 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Make_Index): Reject properly the use of 'Length + in a discrete range, when 'range was probably intended. + +2014-07-31 Robert Dewar <dewar@adacore.com> + + * sem_warn.adb, sem_warn.ads (Has_Junk_Name): Moved from body to spec. + 2014-07-31 Robert Dewar <dewar@adacore.com> * frontend.adb: Minor reformatting. diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index b5df7095c7e..2d5a430d435 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -17285,10 +17285,16 @@ package body Sem_Ch3 is elsif Nkind (N) = N_Attribute_Reference then - -- The parser guarantees that the attribute is a RANGE attribute + -- Catch beginner's error (use of attribute other than 'Range) + + if Attribute_Name (N) /= Name_Range then + Error_Msg_N ("expect attribute ''Range", N); + Set_Etype (N, Any_Type); + return; + end if; -- If the node denotes the range of a type mark, that is also the - -- resulting type, and we do no need to create an Itype for it. + -- resulting type, and we do not need to create an Itype for it. if Is_Entity_Name (Prefix (N)) and then Comes_From_Source (N) diff --git a/gcc/ada/sem_warn.adb b/gcc/ada/sem_warn.adb index 8db68351497..6974c454c11 100644 --- a/gcc/ada/sem_warn.adb +++ b/gcc/ada/sem_warn.adb @@ -128,16 +128,6 @@ package body Sem_Warn is -- If E is a parameter entity for a subprogram body, then this function -- returns the corresponding spec entity, if not, E is returned unchanged. - function Has_Junk_Name (E : Entity_Id) return Boolean; - -- Return True if the entity name contains any of the following substrings: - -- discard - -- dummy - -- ignore - -- junk - -- unused - -- Used to suppress warnings on names matching these patterns. The contents - -- of Name_Buffer and Name_Len are destroyed by this call. - function Has_Pragma_Unmodified_Check_Spec (E : Entity_Id) return Boolean; -- Tests Has_Pragma_Unmodified flag for entity E. If E is not a formal, -- this is simply the setting of the flag Has_Pragma_Unmodified. If E is diff --git a/gcc/ada/sem_warn.ads b/gcc/ada/sem_warn.ads index efd31950518..41c5a22e3e9 100644 --- a/gcc/ada/sem_warn.ads +++ b/gcc/ada/sem_warn.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2013, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2014, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -239,4 +239,18 @@ package Sem_Warn is -- block or subprogram to see if there are any variables for which useless -- assignments were made (assignments whose values were never read). + ---------------------- + -- Utility Routines -- + ---------------------- + + function Has_Junk_Name (E : Entity_Id) return Boolean; + -- Return True if the entity name contains any of the following substrings: + -- discard + -- dummy + -- ignore + -- junk + -- unused + -- Used to suppress warnings on names matching these patterns. The contents + -- of Name_Buffer and Name_Len are destroyed by this call. + end Sem_Warn; |