public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r12-1507] [Ada] Fix ALI source location for dominance markers
@ 2021-06-16  8:44 Pierre-Marie de Rodat
  0 siblings, 0 replies; only message in thread
From: Pierre-Marie de Rodat @ 2021-06-16  8:44 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:7626537ae7643013855cf28f82b16239314f20d1

commit r12-1507-g7626537ae7643013855cf28f82b16239314f20d1
Author: Matthieu Eyraud <eyraud@adacore.com>
Date:   Tue Feb 23 08:54:30 2021 +0100

    [Ada] Fix ALI source location for dominance markers
    
    gcc/ada/
    
            * par_sco.adb (Set_Statement_Entry): Change sloc for dominance
            marker.
            (Traverse_One): Fix typo.
            (Output_Header): Fix comment.

Diff:
---
 gcc/ada/par_sco.adb | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/gcc/ada/par_sco.adb b/gcc/ada/par_sco.adb
index 638cb3579de..b4f76091f44 100644
--- a/gcc/ada/par_sco.adb
+++ b/gcc/ada/par_sco.adb
@@ -683,9 +683,12 @@ package body Par_SCO is
                --  two levels (through the pragma argument association) to
                --  get to the pragma node itself. For the guard on a select
                --  alternative, we do not have access to the token location for
-               --  the WHEN, so we use the first sloc of the condition itself
-               --  (note: we use First_Sloc, not Sloc, because this is what is
-               --  referenced by dominance markers).
+               --  the WHEN, so we use the first sloc of the condition itself.
+               --  First_Sloc gives the most sensible result, but we have to
+               --  beware of also using it when computing the dominance marker
+               --  sloc (in the Set_Statement_Entry procedure), as this is not
+               --  fully equivalent to the "To" sloc computed by
+               --  Sloc_Range (Guard, To, From).
 
                --  Doesn't this requirement of using First_Sloc need to be
                --  documented in the spec ???
@@ -1579,6 +1582,18 @@ package body Par_SCO is
                         To := No_Location;
                      end if;
 
+                     --  Be consistent with the location determined in
+                     --  Output_Header.
+
+                     if Current_Dominant.K = 'T'
+                        and then Nkind (Parent (Current_Dominant.N))
+                                   in N_Accept_Alternative
+                                    | N_Delay_Alternative
+                                    | N_Terminate_Alternative
+                     then
+                        From := First_Sloc (Current_Dominant.N);
+                     end if;
+
                      Set_Raw_Table_Entry
                        (C1                 => '>',
                         C2                 => Current_Dominant.K,
@@ -1867,7 +1882,7 @@ package body Par_SCO is
                      Process_Decisions_Defer (Cond, 'G');
 
                      --  For an entry body with a barrier, the entry body
-                     --  is dominanted by a True evaluation of the barrier.
+                     --  is dominated by a True evaluation of the barrier.
 
                      Inner_Dominant := ('T', N);
                   end if;


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-06-16  8:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-16  8:44 [gcc r12-1507] [Ada] Fix ALI source location for dominance markers Pierre-Marie de Rodat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).