* tree.c (substitute_in_expr): Add missing 'break'.
ada/
* utils.c (build_function_stub): Properly build the call expression.
From-SVN: r131600
+2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.c (substitute_in_expr): Add missing 'break'.
+
2008-01-17 Richard Guenther <rguenther@suse.de>
PR tree-optimization/34825
+2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * utils.c (build_function_stub): Properly build the call expression.
+
2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
* decl.c (gnat_to_gnu_entity) <object>: Process renamings
/* Invoke the internal subprogram. */
gnu_subprog_addr = build1 (ADDR_EXPR, build_pointer_type (gnu_subprog_type),
gnu_subprog);
- gnu_subprog_call = build3 (CALL_EXPR, TREE_TYPE (gnu_subprog_type),
- gnu_subprog_addr, nreverse (gnu_param_list),
- NULL_TREE);
+ gnu_subprog_call = build_call_list (TREE_TYPE (gnu_subprog_type),
+ gnu_subprog_addr,
+ nreverse (gnu_param_list));
/* Propagate the return value, if any. */
if (VOID_TYPE_P (TREE_TYPE (gnu_subprog_type)))
+2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/discr5.adb: New test.
+
2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
* gcc.c-torture/compile/20080114-1.c: Use empty asm statements.
--- /dev/null
+-- { dg-do compile }
+
+procedure Discr5 is
+
+ type Enum is (Ten, Twenty);
+ for Enum use (10, 20);
+ type Arr is array (Enum range <>) of Integer;
+ type Rec (Discr: Enum := Ten) is record
+ case Discr is
+ when others =>
+ A: Arr (Ten .. Discr);
+ end case;
+ end record;
+
+begin
+ null;
+end;
{
tree copy = NULL_TREE;
int i;
- int n = TREE_OPERAND_LENGTH (exp);
- for (i = 1; i < n; i++)
+
+ for (i = 1; i < TREE_OPERAND_LENGTH (exp); i++)
{
tree op = TREE_OPERAND (exp, i);
tree newop = SUBSTITUTE_IN_EXPR (op, f, r);
else
return exp;
}
+ break;
default:
gcc_unreachable ();