+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.
-- 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;
-----------------------------------------
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;