[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
This commit is contained in:
parent
2aca76d673
commit
e68077239d
|
@ -1,3 +1,17 @@
|
|||
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.
|
||||
|
||||
2012-08-06 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* sem_ch6.adb: Remove useless flag Body_Deleted.
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
-- --
|
||||
-- B o d y --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- GNAT is free software; you can redistribute it and/or modify it under --
|
||||
-- terms of the GNU General Public License as published by the Free Soft- --
|
||||
|
@ -31,9 +31,7 @@
|
|||
|
||||
-- This body is specifically for using an Ada interface to C math.h to get
|
||||
-- the computation engine. Many special cases are handled locally to avoid
|
||||
-- unnecessary calls. This is not a "strict" implementation, but takes full
|
||||
-- advantage of the C functions, e.g. in providing interface to hardware
|
||||
-- provided versions of the elementary functions.
|
||||
-- unnecessary calls or to meet Annex G strict mode requirements.
|
||||
|
||||
-- Uses functions sqrt, exp, log, pow, sin, asin, cos, acos, tan, atan, sinh,
|
||||
-- cosh, tanh from C library via math.h
|
||||
|
|
|
@ -3737,6 +3737,9 @@ package body Exp_Aggr is
|
|||
Analyze_And_Resolve (N, Typ);
|
||||
end if;
|
||||
|
||||
-- Is Static_Eaboration_Desired has been specified, diagnose aggregates
|
||||
-- that will still require initialization code.
|
||||
|
||||
if (Ekind (Current_Scope) = E_Package
|
||||
and then Static_Elaboration_Desired (Current_Scope))
|
||||
and then Nkind (Parent (N)) = N_Object_Declaration
|
||||
|
@ -3745,7 +3748,7 @@ package body Exp_Aggr is
|
|||
Expr : Node_Id;
|
||||
|
||||
begin
|
||||
if Present (Expressions (N)) then
|
||||
if Nkind (N) = N_Aggregate and then Present (Expressions (N)) then
|
||||
Expr := First (Expressions (N));
|
||||
while Present (Expr) loop
|
||||
if Nkind_In (Expr, N_Integer_Literal, N_Real_Literal)
|
||||
|
|
|
@ -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 =>
|
||||
|
|
Loading…
Reference in New Issue