diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 42d342fe8769..773b70523fdc 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,12 @@ +2019-08-14 Bob Duff + + * 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 * sem.ads (Inside_A_Generic): Remove the ??? comment. diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index 0f822bf02387..1db39f4a7f30 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -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;