+2013-09-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (Subprogram_Body_to_gnu): Pop the stack of
+ return variables for subprograms using the CICO mechanism.
+
2013-09-13 Dominique Dhumieres <dominiq@lps.ens.fr>
* gcc-interface/Makefile.in: Fix darwin Filter to match on $target_os,
{
tree gnu_retval;
+ gnu_return_var_stack->pop ();
+
add_stmt (gnu_result);
add_stmt (build1 (LABEL_EXPR, void_type_node,
gnu_return_label_stack->last ()));
+2013-09-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/in_out_parameter4.adb: New test.
+
2013-09-18 Marek Polacek <polacek@redhat.com>
PR sanitizer/58411
--- /dev/null
+-- { dg-do run }
+-- { dg-options "-gnat12 -gnatVa" }
+
+procedure In_Out_Parameter4 is
+
+ type Enum is (E_Undetermined, E_Down, E_Up);
+ subtype Status_T is Enum range E_Down .. E_Up;
+
+ function Recurse (Val : in out Integer) return Status_T is
+
+ Result : Status_T;
+
+ procedure Dummy (I : in out Integer) is begin null; end;
+
+ begin
+ if Val > 500 then
+ Val := Val - 1;
+ Result := Recurse (Val);
+ return Result;
+ else
+ return E_UP;
+ end if;
+ end;
+
+ Val : Integer := 501;
+ S : Status_T;
+
+begin
+ S := Recurse (Val);
+end;