[Ada] Tweak the sloc of Compile_Time_Warning warnings

2019-08-14  Bob Duff  <duff@adacore.com>

gcc/ada/

	* sem_prag.adb (Validate_Compile_Time_Warning_Error): Attach the
	warning to the Sloc of the first pragma argument, rather than to
	the pragma itself. This is to make pragmas processed after the
	back end use the same Sloc as pragmas processed earlier, in the
	front end. There's no reason for this discrepancy, and it
	hinders further work on this ticket.

From-SVN: r274461
This commit is contained in:
Bob Duff 2019-08-14 09:51:57 +00:00 committed by Pierre-Marie de Rodat
parent 6d0ca6acd0
commit 3a02b4697e
2 changed files with 13 additions and 3 deletions

View File

@ -1,3 +1,12 @@
2019-08-14 Bob Duff <duff@adacore.com>
* sem_prag.adb (Validate_Compile_Time_Warning_Error): Attach the
warning to the Sloc of the first pragma argument, rather than to
the pragma itself. This is to make pragmas processed after the
back end use the same Sloc as pragmas processed earlier, in the
front end. There's no reason for this discrepancy, and it
hinders further work on this ticket.
2019-08-14 Bob Duff <duff@adacore.com>
* sem.ads (Inside_A_Generic): Remove the ??? comment.

View File

@ -336,8 +336,8 @@ package body Sem_Prag is
-- and alignment values performed by the back end.
-- Note: the reason we store a Source_Ptr value instead of a Node_Id is
-- that by the time Validate_Unchecked_Conversions is called, Sprint will
-- already have modified all Sloc values if the -gnatD option is set.
-- that by the time Validate_Compile_Time_Warning_Errors is called, Sprint
-- will already have modified all Sloc values if the -gnatD option is set.
type CTWE_Entry is record
Eloc : Source_Ptr;
@ -32147,9 +32147,10 @@ package body Sem_Prag is
-----------------------------------------
procedure Validate_Compile_Time_Warning_Error (N : Node_Id) is
Arg1 : constant Node_Id := First (Pragma_Argument_Associations (N));
begin
Compile_Time_Warnings_Errors.Append
(New_Val => CTWE_Entry'(Eloc => Sloc (N),
(New_Val => CTWE_Entry'(Eloc => Sloc (Arg1),
Scope => Current_Scope,
Prag => N));
end Validate_Compile_Time_Warning_Error;