summaryrefslogtreecommitdiff
path: root/gcc/ada/sem_attr.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2016-04-21 08:48:04 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2016-04-21 08:48:04 +0000
commit141900682adebf167ed10f0acb9ceed13a011014 (patch)
treed48fa71938d552b7b9b48fb1a0a0bf1bc6acb1a9 /gcc/ada/sem_attr.adb
parenta792d795c503fd100bf7387bf3aee0dbcc988a16 (diff)
downloadgcc-141900682adebf167ed10f0acb9ceed13a011014.tar.gz
2016-04-21 Philippe Gil <gil@adacore.com>
* tracebak.c (__gnat_backtrace): handle bad RIP values (win64 only) 2016-04-21 Javier Miranda <miranda@adacore.com> * exp_aggr.adb (Component_Not_OK_For_Backend): Return true for string literals. 2016-04-21 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb (Has_Non_Null_Abstract_State): New routine. * einfo.ads New synthesized attribute Has_Non_Null_Abstract_State along with occurrences in entities. (Has_Non_Null_Abstract_State): New routine. * sem_ch7.adb (Unit_Requires_Body): Add local variable Requires_Body. A package declaring an abstract state requires a body only when the state is non-null and the package contains at least one other construct that requires completion in a body. * sem_util.adb (Mode_Is_Off): Removed. (Requires_State_Refinement): Remove an obsolete check. Code cleanup. 2016-04-21 Bob Duff <duff@adacore.com> * sem_attr.adb (Analyze_Attribute): In processing the 'Old attribute, a warning is given for infinite recursion. Fix the code to not crash when the prefix of 'Old denotes a protected function. * sem_ch5.adb (Analyze_Iterator_Specification): Avoid calling Is_Dependent_Component_Of_Mutable_Object in cases where the parameter would not be an object. 2016-04-21 Eric Botcazou <ebotcazou@adacore.com> * sem_eval.adb (Compile_Time_Compare): Be prepared for an empty Etype or Underlying_Type of the operands. 2016-04-21 Eric Botcazou <ebotcazou@adacore.com> * atree.adb (Print_Statistics): Protect against overflows and print the memory consumption in bytes. * table.adb (Reallocate): Do the intermediate calculation of the new size using the Memory.size_t type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235312 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sem_attr.adb')
-rw-r--r--gcc/ada/sem_attr.adb8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb
index db02aa58cec..3a0fcbe60fe 100644
--- a/gcc/ada/sem_attr.adb
+++ b/gcc/ada/sem_attr.adb
@@ -4940,7 +4940,13 @@ package body Sem_Attr is
-- function Func (...) return ...
-- with Post => Func'Old ...;
- elsif Nkind (P) = N_Function_Call then
+ -- The function may be specified in qualified form X.Y where X is
+ -- a protected object and Y is a protected function. In that case
+ -- ensure that the qualified form has an entity.
+
+ elsif Nkind (P) = N_Function_Call
+ and then Nkind (Name (P)) in N_Has_Entity
+ then
Pref_Id := Entity (Name (P));
if Ekind_In (Spec_Id, E_Function, E_Generic_Function)