inline.adb, inline.ads (Call_Can_Be_Inlined_In_GNATprove_Mode): New function to detec...
authorYannick Moy <moy@adacore.com>
Fri, 13 Jan 2017 10:22:23 +0000 (10:22 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 13 Jan 2017 10:22:23 +0000 (11:22 +0100)
commit3de3a1be9ee8c46efce3714cbbecaae0c7efe3f0
treee031513a067f8fa4ff85971c4baa742f200c3de5
parent4ccff88b71d7988940c736f123071b11fb614d05
inline.adb, inline.ads (Call_Can_Be_Inlined_In_GNATprove_Mode): New function to detect when a call may be inlined or not in GNATprove mode.

2017-01-13  Yannick Moy  <moy@adacore.com>

* inline.adb, inline.ads (Call_Can_Be_Inlined_In_GNATprove_Mode):
New function to detect when a call may be inlined or not in
GNATprove mode.
(Expand_Inlined_Call): Ensure that a temporary
is always created in the cases where a type conversion may be
needed on an input parameter in GNATprove mode, so that GNATprove
sees the check to perform.
* sem_res.adb (Resolve_Call): In GNATprove mode, skip inlining
when not applicable due to actual requiring type conversion
with possible check but no temporary value can be copied for
GNATprove to see the check.

From-SVN: r244408
gcc/ada/ChangeLog
gcc/ada/inline.adb
gcc/ada/inline.ads
gcc/ada/sem_res.adb