Issue a positive message that inlining was performed in GNATprove mode,
when corresponding debug switch -gnatd_f is set.
Tested on x86_64-pc-linux-gnu, committed on trunk
2018-09-26 Yannick Moy <m...@adacore.com>
gcc/ada/
* errout.ads: Update comment for insertion character '?'.
* inline.adb: Use simple insertion character '?' for GNATprove
info messages.
* sem_res.adb (Resolve_Call): Issue an info message on inlining
in GNATprove mode.
--- gcc/ada/errout.ads
+++ gcc/ada/errout.ads
@@ -305,7 +305,9 @@ package Errout is
-- Note: this usage is obsolete, use ?? ?*? ?$? ?x? ?X? to specify
-- the string to be added when Warn_Doc_Switch is set to True. If this
-- switch is True, then for simple ? messages it has no effect. This
- -- simple form is to ease transition and will be removed later.
+ -- simple form is to ease transition and may be removed later except
+ -- for GNATprove-specific messages (info and warnings) which are not
+ -- subject to the same GNAT warning switches.
-- Insertion character ?? (Two question marks: default warning)
-- Like ?, but if the flag Warn_Doc_Switch is True, adds the string
--- gcc/ada/inline.adb
+++ gcc/ada/inline.adb
@@ -1615,7 +1615,7 @@ package body Inline is
Set_Is_Inlined_Always (Subp, False);
if Debug_Flag_Underscore_F then
- Error_Msg_NE (Msg & "p?", N, Subp);
+ Error_Msg_NE (Msg, N, Subp);
end if;
elsif Has_Pragma_Inline_Always (Subp) then
@@ -1645,7 +1645,7 @@ package body Inline is
Set_Is_Inlined_Always (Subp, False);
if Debug_Flag_Underscore_F then
- Error_Msg_NE (Msg & "p?", N, Subp);
+ Error_Msg_NE (Msg, N, Subp);
end if;
else
--- gcc/ada/sem_res.adb
+++ gcc/ada/sem_res.adb
@@ -6842,9 +6842,15 @@ package body Sem_Res is
("cannot inline & (possible check on input parameters)?",
N, Nam_UA);
- -- Otherwise, inline the call
+ -- Otherwise, inline the call, issuing an info message when
+ -- -gnatd_f is set.
else
+ if Debug_Flag_Underscore_F then
+ Error_Msg_NE
+ ("info: analyzing call to & in context?", N, Nam_UA);
+ end if;
+
Expand_Inlined_Call (N, Nam_UA, Nam);
end if;
end if;