summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_ch7.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-20 15:47:03 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-20 15:47:03 +0000
commit596336afbb593298e22110c215c31174139f1685 (patch)
tree20e082023d177655c2761b1671694c8dcac5d825 /gcc/ada/exp_ch7.adb
parentbecb77a9b4e077a13755aca1f3b0a287499e1730 (diff)
downloadgcc-596336afbb593298e22110c215c31174139f1685.tar.gz
2014-01-20 Robert Dewar <dewar@adacore.com>
* s-tataat.adb: Minor reformatting. 2014-01-20 Robert Dewar <dewar@adacore.com> * einfo.adb (Is_Descendent_Of_Address): Now applies to all entities, and also fix documentation to remove mention of visible integer type, since this is not what the implementation does. * einfo.ads (Is_Descendent_Of_Address): Now applies to all entities, and also fix documentation to remove mention of visible integer type, since this is not what the implementation does. * gnat_rm.texi: Minor clarification of Allow_Integer_Address function. * sem_ch4.adb (Analyze_One_Call): Handle Allow_Integer_Address case for parameter type check. * sem_res.adb (Resolve): Use new function Address_Integer_Convert_OK. * sem_type.adb: Minor code reorganization (use Ekind_In) Minor reformatting throughout. * sem_util.adb (Address_Integer_Convert_OK): New function. * sem_util.ads: Minor reformatting (put specs in alpha order) (Address_Integer_Convert_OK): New function. 2014-01-20 Thomas Quinot <quinot@adacore.com> * exp_ch7.adb (Wrap_Transient_Expression): Insertion extra conditional expression only if Opt.Suppress_Control_Flow_Optimizations is set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206832 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_ch7.adb')
-rw-r--r--gcc/ada/exp_ch7.adb11
1 files changed, 4 insertions, 7 deletions
diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb
index 8a16033233f..42d499b2d18 100644
--- a/gcc/ada/exp_ch7.adb
+++ b/gcc/ada/exp_ch7.adb
@@ -7982,16 +7982,13 @@ package body Exp_Ch7 is
-- end;
-- A special case is made for Boolean expressions so that the back-end
- -- knows to generate a conditional branch instruction if running with
+ -- knows to generate a conditional branch instruction, if running with
-- -fpreserve-control-flow. This ensures that a control flow change
-- signalling the decision outcome occurs before the cleanup actions.
- -- In the absence of -fpreserve-control-flow, the back-end will
- -- optimize away the extra conditional expression, so we can do this
- -- modification unconditionally here.
- -- Why don't we add a test of Opt.Preserve_Control_Flow here???
-
- if Is_Boolean_Type (Typ) then
+ if Opt.Suppress_Control_Flow_Optimizations
+ and then Is_Boolean_Type (Typ)
+ then
Expr :=
Make_If_Expression (Loc,
Expressions => New_List (