diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-08-06 10:17:25 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-08-06 10:17:25 +0200 |
commit | e68077239dc16ba900c6f3b631fd88032bc870d2 (patch) | |
tree | a045f0edbeb7f8290f764a4308dc6a58d30da10d /gcc/ada/exp_ch7.adb | |
parent | 2aca76d6731a7d0602438ada075fcd651bde68cb (diff) | |
download | gcc-e68077239dc16ba900c6f3b631fd88032bc870d2.zip gcc-e68077239dc16ba900c6f3b631fd88032bc870d2.tar.gz gcc-e68077239dc16ba900c6f3b631fd88032bc870d2.tar.bz2 |
[multiple changes]
2012-08-06 Geert Bosch <bosch@adacore.com>
* a-ngelfu.adb: Change obsolete comment that this is a non-strict
implementation.
2012-08-06 Steve Baird <baird@adacore.com>
* exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): If
CodePeer_Mode = True then omit exception handlers for finalization calls
2012-08-06 Robert Dewar <dewar@adacore.com>
* exp_aggr.adb: Minor reformatting.
From-SVN: r190165
Diffstat (limited to 'gcc/ada/exp_ch7.adb')
-rw-r--r-- | gcc/ada/exp_ch7.adb | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb index 6297dc9..122065d 100644 --- a/gcc/ada/exp_ch7.adb +++ b/gcc/ada/exp_ch7.adb @@ -2645,7 +2645,18 @@ package body Exp_Ch7 is Obj_Ref => Obj_Ref, Typ => Obj_Typ); - if Exceptions_OK then + -- For CodePeer, the exception handlers normally generated here + -- generate complex flowgraphs which result in capacity problems. + -- Omitting these handlers for CodePeer is justified as follows: + + -- If a handler is dead, then omitting it is surely ok + + -- If a handler is live, then CodePeer should flag the + -- potentially-exception-raising construct that causes it + -- to be live. That is what we are interested in, not what + -- happens after the exception is raised. + + if Exceptions_OK and not CodePeer_Mode then Fin_Stmts := New_List ( Make_Block_Statement (Loc, Handled_Statement_Sequence => |