diff options
author | Ed Schonberg <schonberg@adacore.com> | 2005-11-15 15:00:18 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2005-11-15 15:00:18 +0100 |
commit | dff0475fb55528621b7c9a2324d042df943ad803 (patch) | |
tree | 9ff736e010bc59488bea5f8e018982814f60f62f /gcc | |
parent | 70b352b52f59065a464bc2ff57f75b49b8c52950 (diff) | |
download | gcc-dff0475fb55528621b7c9a2324d042df943ad803.zip gcc-dff0475fb55528621b7c9a2324d042df943ad803.tar.gz gcc-dff0475fb55528621b7c9a2324d042df943ad803.tar.bz2 |
lib-xref.adb (Generate_Definition, [...]): Treat the internal entity created for the declaration of a child subprogram...
2005-11-14 Ed Schonberg <schonberg@adacore.com>
* lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
internal entity created for the declaration of a child subprogram body
with no spec as coming from source, to generate proper cross-reference
information.
From-SVN: r106988
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/lib-xref.adb | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/ada/lib-xref.adb b/gcc/ada/lib-xref.adb index 7260b0c..1d0c8cb 100644 --- a/gcc/ada/lib-xref.adb +++ b/gcc/ada/lib-xref.adb @@ -111,8 +111,13 @@ package body Lib.Xref is if Opt.Xref_Active -- Definition must come from source + -- We make an exception for subprogram child units that have no + -- spec. For these we generate a subprogram declaration for library + -- use, and the corresponding entity does not come from source. + -- Nevertheless, all references will be attached to it and we have + -- to treat is as coming from user code. - and then Comes_From_Source (E) + and then (Comes_From_Source (E) or else Is_Child_Unit (E)) -- And must have a reasonable source location that is not -- within an instance (all entities in instances are ignored) @@ -518,6 +523,14 @@ package body Lib.Xref is end if; end loop; + -- The internally created defining entity for a child subprogram + -- that has no previous spec has valid references. + + elsif Is_Overloadable (E) + and then Is_Child_Unit (E) + then + Ent := E; + -- Record components of discriminated subtypes or derived types -- must be treated as references to the original component. |