diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-04-11 12:45:11 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-04-11 12:45:11 +0200 |
commit | fc142f6327838046dd9d363de53fad60771304e2 (patch) | |
tree | a14bcd806f8dac2b6a1d64d38ad4c14ed7f2547b /gcc/ada/lib-xref.adb | |
parent | 2602b64e3a4072c8819cad2f3abffe2d5ae69de3 (diff) | |
download | gcc-fc142f6327838046dd9d363de53fad60771304e2.zip gcc-fc142f6327838046dd9d363de53fad60771304e2.tar.gz gcc-fc142f6327838046dd9d363de53fad60771304e2.tar.bz2 |
[multiple changes]
2013-04-11 Robert Dewar <dewar@adacore.com>
* atree.h: Add declarations for Flag255-Flag289 Fix declaration
of Field30 (was wrong, but no effect, since not yet referenced by
back end) Add declarations for Field31-Field35 Add declarations
for Node31-Node35.
* einfo.ads, einfo.adb (Has_Invariants): No longer applies to
procedures.
(Has_Predicates): No longer applies to functions.
(Is_Predicate_Function): New flag.
(Is_Predicate_Function_M): New flag.
(Is_Invariant_Procedure): New flag.
(Predicate_Function_M): New function.
(Set_Predicate_Function_M): New procedure.
* exp_ch11.adb (Expand_N_Raise_Expression): Take care of special
case of appearing in predicate used for membership test.
* exp_ch3.adb (Insert_Component_Invariant_Checks): Set
Is_Invariant_Procedure flag.
* exp_ch4.adb (Expand_Op_In): Call special predicate function
that takes care of raise_expression nodes in the predicate.
* exp_util.ads, exp_util.adb (Make_Predicate_Call): Add argument Mem for
membership case.
* sem_ch13.adb (Build_Predicate_Functions): New name for
Build_Predicate_Function. Major rewrite to take care of raise
expression in predicate for membership tests.
* sem_res.adb (Resolve_Actuals): Include both predicate functions
in defense against infinite predicate function loops.
* sinfo.ads, sinfo.adb (Convert_To_Return_False): New flag.
2013-04-11 Robert Dewar <dewar@adacore.com>
* sem_prag.adb: Minor reformatting.
2013-04-11 Ed Schonberg <schonberg@adacore.com>
* lib-xref.adb: Generate reference for component of anonymous
access type.
From-SVN: r197766
Diffstat (limited to 'gcc/ada/lib-xref.adb')
-rw-r--r-- | gcc/ada/lib-xref.adb | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/ada/lib-xref.adb b/gcc/ada/lib-xref.adb index 2f01dd4..bf3f035 100644 --- a/gcc/ada/lib-xref.adb +++ b/gcc/ada/lib-xref.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2012, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2013, 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- -- @@ -2047,8 +2047,8 @@ package body Lib.Xref is Ctyp := '*'; end if; - -- Special handling for access parameters and objects of - -- an anonymous access type. + -- Special handling for access parameters and objects and + -- components of an anonymous access type. if Ekind_In (Etype (XE.Key.Ent), E_Anonymous_Access_Type, @@ -2056,7 +2056,9 @@ package body Lib.Xref is E_Anonymous_Access_Protected_Subprogram_Type) then if Is_Formal (XE.Key.Ent) - or else Ekind_In (XE.Key.Ent, E_Variable, E_Constant) + or else + Ekind_In + (XE.Key.Ent, E_Variable, E_Constant, E_Component) then Ctyp := 'p'; end if; |