diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-01-22 18:04:57 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-01-22 18:04:57 +0100 |
commit | 3b8056a559e3501d93ddf987cb5b20d2c6f9f188 (patch) | |
tree | fb500cca254aaedb7e5fc375e0443cd50f454d3e /gcc/ada/lib-xref.adb | |
parent | fba9ebfc51f21a9ba4848c721bb925078737b024 (diff) | |
download | gcc-3b8056a559e3501d93ddf987cb5b20d2c6f9f188.zip gcc-3b8056a559e3501d93ddf987cb5b20d2c6f9f188.tar.gz gcc-3b8056a559e3501d93ddf987cb5b20d2c6f9f188.tar.bz2 |
[multiple changes]
2014-01-22 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): A subprogram
body generated for an expression function within a protected body
needs a set of renaming declarations if the expression function
comes from source.
2014-01-22 Ed Schonberg <schonberg@adacore.com>
* lib-xref.adb (Get_Type_Reference): In semantics-only mode,
list interface progenitor of a tagged concurrent type, for better
source navigation.
2014-01-22 Robert Dewar <dewar@adacore.com>
* lib.adb (In_Extended_Main_Code_Unit): Return False for
Standard_Location.
(In_Extended_Main_Source_Unit): Return False for Standard_Location.
* lib.ads (In_Extended_Main_Code_Unit): Add documentation on
treatment of Slocs No_Location and Standard_Location.
* restrict.adb (Check_Restriction_No_Dependence): Explicitly
check for entity with Standard_Location Sloc, rather than relying
on Lib routines to do that.
* sem_res.adb (Resolve_Call): Implement SPARK_05 restriction
that a call cannot occur before a later occuring body within
the same unit.
From-SVN: r206931
Diffstat (limited to 'gcc/ada/lib-xref.adb')
-rw-r--r-- | gcc/ada/lib-xref.adb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ada/lib-xref.adb b/gcc/ada/lib-xref.adb index 14462ce..409e736 100644 --- a/gcc/ada/lib-xref.adb +++ b/gcc/ada/lib-xref.adb @@ -1309,6 +1309,22 @@ package body Lib.Xref is Right := '>'; end if; + -- For a synchronized type that implements an interface, we + -- treat the first progenitor as the parent. This is only + -- needed when compiling a package declaration on its own, + -- if the body is present interfaces are handled properly. + + elsif Is_Concurrent_Type (Tref) + and then Is_Tagged_Type (Tref) + and then not Expander_Active + then + if Left /= '(' then + Left := '<'; + Right := '>'; + end if; + + Tref := Entity (First (Interface_List (Parent (Tref)))); + -- If the completion of a private type is itself a derived -- type, we need the parent of the full view. |