aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_res.adb
diff options
context:
space:
mode:
authorYannick Moy <moy@adacore.com>2023-05-10 16:10:54 +0200
committerMarc Poulhiès <poulhies@adacore.com>2023-06-20 09:30:50 +0200
commitf1c15fe3f054d453f94e1412ec5bcb2c1e7205e8 (patch)
tree2b234f37f08ffc7a437963f0792a648e5f228eb1 /gcc/ada/sem_res.adb
parentb367a66cfb620b88338111eebd549cc2fad1c16b (diff)
downloadgcc-f1c15fe3f054d453f94e1412ec5bcb2c1e7205e8.zip
gcc-f1c15fe3f054d453f94e1412ec5bcb2c1e7205e8.tar.gz
gcc-f1c15fe3f054d453f94e1412ec5bcb2c1e7205e8.tar.bz2
ada: Add the ability to add error codes to error messages
Add a new character sequence [] for error codes in error messages handled by Error_Msg procedures, to use for SPARK-related errors. Display of additional information on the error or warning based on the error code is delegated to GNATprove. gcc/ada/ * err_vars.ads (Error_Msg_Code): New variable for error codes. * errout.adb (Error_Msg_Internal): Display continuation message when an error code was present. (Set_Msg_Text): Handle character sequence [] for error codes. * errout.ads: Document new insertion sequence []. (Error_Msg_Code): New renaming. * erroutc.adb (Prescan_Message): Detect presence of error code. (Set_Msg_Insertion_Code): Handle new insertion sequence []. * erroutc.ads (Has_Error_Code): New variable for prescan. (Set_Msg_Insertion_Code): Handle new insertion sequence []. * contracts.adb (Check_Type_Or_Object_External_Properties): Replace reference to SPARK RM section by an error code. * sem_elab.adb (SPARK_Processor): Same. * sem_prag.adb (Check_Missing_Part_Of): Same. * sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Same.
Diffstat (limited to 'gcc/ada/sem_res.adb')
-rw-r--r--gcc/ada/sem_res.adb9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index ef3b877..f4dfc04 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -3914,9 +3914,10 @@ package body Sem_Res is
Obj_Ref => N,
Check_Actuals => True)
then
+ Error_Msg_Code := GEC_Volatile_Non_Interfering_Context;
Error_Msg_N
- ("volatile object cannot appear in this context"
- & " (SPARK RM 7.1.3(10))", N);
+ ("volatile object cannot appear in this context '[[]']",
+ N);
end if;
return Skip;
@@ -8103,9 +8104,9 @@ package body Sem_Res is
and then
not Is_OK_Volatile_Context (Par, N, Check_Actuals => False)
then
+ Error_Msg_Code := GEC_Volatile_Non_Interfering_Context;
SPARK_Msg_N
- ("volatile object cannot appear in this context "
- & "(SPARK RM 7.1.3(10))", N);
+ ("volatile object cannot appear in this context '[[]']", N);
end if;
-- Parameters of modes OUT or IN OUT of the subprogram shall not