diff options
Diffstat (limited to 'gcc/ada/lib-xref.adb')
-rw-r--r-- | gcc/ada/lib-xref.adb | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/gcc/ada/lib-xref.adb b/gcc/ada/lib-xref.adb index 6773921..034e67a 100644 --- a/gcc/ada/lib-xref.adb +++ b/gcc/ada/lib-xref.adb @@ -1705,8 +1705,8 @@ package body Lib.Xref is end loop; end Handle_Orphan_Type_References; - -- Now we have all the references, including those for any embedded - -- type references, so we can sort them, and output them. + -- Now we have all the references, including those for any embedded type + -- references, so we can sort them, and output them. Output_Refs : declare @@ -2563,6 +2563,38 @@ package body Lib.Xref is end Output_Refs; end Output_References; + --------------------------------- + -- Process_Deferred_References -- + --------------------------------- + + procedure Process_Deferred_References is + begin + for J in Deferred_References.First .. Deferred_References.Last loop + declare + D : Deferred_Reference_Entry renames Deferred_References.Table (J); + + begin + case Is_LHS (D.N) is + when Yes => + Generate_Reference (D.E, D.N, 'm'); + + when No => + Generate_Reference (D.E, D.N, 'r'); + + -- Not clear if Unknown can occur at this stage, but if it + -- does we will treat it as a normal reference. + + when Unknown => + Generate_Reference (D.E, D.N, 'r'); + end case; + end; + end loop; + + -- Clear processed entries from table + + Deferred_References.Init; + end Process_Deferred_References; + -- Start of elaboration for Lib.Xref begin |