aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/errutil.adb
diff options
context:
space:
mode:
authorYannick Moy <moy@adacore.com>2020-12-07 16:45:23 +0100
committerPierre-Marie de Rodat <derodat@adacore.com>2021-04-28 05:38:08 -0400
commit9d5f3b7a694ceb774330d45894b38e34bb90f86a (patch)
treef9755e604cf4629f136eec728632b29475f8d069 /gcc/ada/errutil.adb
parentae77b299e9717e3a76ac6b7be65145a50aa31ed2 (diff)
downloadgcc-9d5f3b7a694ceb774330d45894b38e34bb90f86a.zip
gcc-9d5f3b7a694ceb774330d45894b38e34bb90f86a.tar.gz
gcc-9d5f3b7a694ceb774330d45894b38e34bb90f86a.tar.bz2
[Ada] Use spans instead of locations for compiler diagnostics
gcc/ada/ * errout.adb: (Error_Msg_Internal): Use span instead of location. (Error_Msg, Error_Msg_NEL): Add versions with span parameter. (Error_Msg_F, Error_Msg_FE, Error_Msg_N, Error_Msg_NE, Error_Msg_NW): Retrieve span from node. (First_Node): Use the new First_And_Last_Nodes. (First_And_Last_Nodes): Expand on previous First_Node. Apply to other nodes than expressions. (First_Sloc): Protect against inconsistent locations. (Last_Node): New function based on First_And_Last_Nodes. (Last_Sloc): New function similar to First_Sloc. (Output_Messages): Update output when -gnatdF is used. Use character ~ for making the span visible, similar to what is done in GCC and Clang. * errout.ads (Error_Msg, Error_Msg_NEL): Add versions with span parameter. (First_And_Last_Nodes, Last_Node, Last_Sloc): New subprograms. * erroutc.adb: Adapt to Sptr field being a span. * erroutc.ads (Error_Msg_Object): Change field Sptr from location to span. * errutil.adb: Adapt to Sptr field being a span. * freeze.adb: Use Errout reporting procedures for nodes to get spans. * par-ch3.adb: Likewise. * par-prag.adb: Likewise. * par-util.adb: Likewise. * sem_case.adb: Likewise. * sem_ch13.adb: Likewise. * sem_ch3.adb: Likewise. * sem_prag.adb: Likewise. * types.ads: (Source_Span): New type for spans. (To_Span): Basic constructors for spans.
Diffstat (limited to 'gcc/ada/errutil.adb')
-rw-r--r--gcc/ada/errutil.adb4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/ada/errutil.adb b/gcc/ada/errutil.adb
index d4821fc..0a9f6ad 100644
--- a/gcc/ada/errutil.adb
+++ b/gcc/ada/errutil.adb
@@ -207,7 +207,7 @@ package body Errutil is
Next => No_Error_Msg,
Prev => No_Error_Msg,
Sfile => Get_Source_File_Index (Sptr),
- Sptr => Sptr,
+ Sptr => To_Span (Sptr),
Optr => Optr,
Insertion_Sloc => No_Location,
Line => Get_Physical_Line_Number (Sptr),
@@ -234,7 +234,7 @@ package body Errutil is
Errors.Table (Cur_Msg).Sfile < Errors.Table (Next_Msg).Sfile;
if Errors.Table (Cur_Msg).Sfile = Errors.Table (Next_Msg).Sfile then
- exit when Sptr < Errors.Table (Next_Msg).Sptr;
+ exit when Sptr < Errors.Table (Next_Msg).Sptr.Ptr;
end if;
Prev_Msg := Next_Msg;