aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/debug.adb
diff options
context:
space:
mode:
authorYannick Moy <moy@adacore.com>2014-07-29 14:55:24 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2014-07-29 16:55:24 +0200
commit2d180af122bda9206c06441fee99f9adf873bdde (patch)
tree28bb3481554fc9b101482e1edc13c60506976e79 /gcc/ada/debug.adb
parent5ae243127908fa14634e086d2e55b8a996f95a2c (diff)
downloadgcc-2d180af122bda9206c06441fee99f9adf873bdde.zip
gcc-2d180af122bda9206c06441fee99f9adf873bdde.tar.gz
gcc-2d180af122bda9206c06441fee99f9adf873bdde.tar.bz2
2014-07-29 Yannick Moy <moy@adacore.com>
* debug.adb Enable GNATprove inlining under debug flag -gnatdQ for now. * inline.ads, inline.adb (Can_Be_Inlined_In_GNATprove_Mode): New function to decide when a subprogram can be inlined in GNATprove mode. (Check_And_Build_Body_To_Inline): Include GNATprove_Mode as a condition for possible inlining. * sem_ch10.adb (Analyze_Compilation_Unit): Remove special case for Inline_Always in GNATprove mode. * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build inlined body for subprograms in GNATprove mode, under debug flag -gnatdQ. * sem_prag.adb Minor change in comments. * sem_res.adb (Resolve_Call): Only perform GNATprove inlining inside subprograms marked as SPARK_Mode On. * sinfo.ads: Minor typo fix. From-SVN: r213205
Diffstat (limited to 'gcc/ada/debug.adb')
-rw-r--r--gcc/ada/debug.adb6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ada/debug.adb b/gcc/ada/debug.adb
index d375205..5e9c0da 100644
--- a/gcc/ada/debug.adb
+++ b/gcc/ada/debug.adb
@@ -80,7 +80,7 @@ package body Debug is
-- dN No file name information in exception messages
-- dO Output immediate error messages
-- dP Do not check for controlled objects in preelaborable packages
- -- dQ
+ -- dQ Enable inlining in GNATprove mode
-- dR Bypass check for correct version of s-rpc
-- dS Never convert numbers to machine numbers in Sem_Eval
-- dT Convert to machine numbers only for constant declarations
@@ -438,6 +438,10 @@ package body Debug is
-- in preelaborable packages, but this restriction is a huge pain,
-- especially in the predefined library units.
+ -- dQ Enable inlining in GNATprove mode. Although expansion is not set in
+ -- GNATprove mode, inlining is useful for improving the precision of
+ -- formal verification. Under a debug flag until fully reliable.
+
-- dR Bypass the check for a proper version of s-rpc being present
-- to use the -gnatz? switch. This allows debugging of the use
-- of stubs generation without needing to have GLADE (or some