This patch provides a minor improvement to an error message. This is
compiled with -gnatld7 -gnatws -gnatj60:
1. procedure VolNVol is
2. type R is tagged null record;
3. procedure Q (A : R) is
4. begin
5. null;
6. end;
7. V : R;
8. pragma Volatile (V);
9. begin
10. Q (V);
|
>>> cannot pass volatile argument to non-volatile
formal "A"
11. end VolNVol;
Previously the error did not mention "A" and pointed to the call
Q, instead of the actual V.
Tested on x86_64-pc-linux-gnu, committed on trunk
2011-11-07 Robert Dewar <[email protected]>
* sem_res.adb (Resolve_Actuals): Minor error message improvement.
Index: sem_res.adb
===================================================================
--- sem_res.adb (revision 181090)
+++ sem_res.adb (working copy)
@@ -3926,16 +3926,16 @@
if Is_Atomic_Object (A)
and then not Is_Atomic (Etype (F))
then
- Error_Msg_N
- ("cannot pass atomic argument to non-atomic formal",
- N);
+ Error_Msg_NE
+ ("cannot pass atomic argument to non-atomic formal&",
+ A, F);
elsif Is_Volatile_Object (A)
and then not Is_Volatile (Etype (F))
then
- Error_Msg_N
- ("cannot pass volatile argument to non-volatile formal",
- N);
+ Error_Msg_NE
+ ("cannot pass volatile argument to non-volatile formal&",
+ A, F);
end if;
end if;