aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/sem_res.adb6
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 0a3c479..2c0a31d 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2016-04-18 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_res.adb (Resolve_Short_Circuit): Do not use
+ expression-with-actions when generating C.
+
2016-04-18 Yannick Moy <moy@adacore.com>
* sem_util.adb (Apply_Compile_Time_Constraint_Error): Do not generate
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index 6780772..0471b14 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -10044,9 +10044,11 @@ package body Sem_Res is
-- finalization of transient controlled objects) are fully evaluated
-- locally within an expression with actions. This is particularly
-- helpful for coverage analysis. However this should not happen in
- -- generics.
+ -- generics. Similarly, we want to minimize use of expression with
+ -- actions when generating C code, and finalization is not supported
+ -- in this mode anyway.
- if Expander_Active then
+ if Expander_Active and not Generate_C_Code then
declare
Reloc_L : constant Node_Id := Relocate_Node (L);
begin