From 7e169899559dd04cbde3bf6e0599720e6918a461 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Sun, 11 Sep 2011 19:14:51 +0000 Subject: utils.c (maybe_unconstrained_array): In the reference to unconstrained array case, deal with each branch of a COND_EXPR. * gcc-interface/utils.c (maybe_unconstrained_array): In the reference to unconstrained array case, deal with each branch of a COND_EXPR. * gcc-interface/utils2.c (build_allocator): Deal with each branch of a COND_EXPR in the initializer, if present. From-SVN: r178766 --- gcc/ada/gcc-interface/utils2.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'gcc/ada/gcc-interface/utils2.c') diff --git a/gcc/ada/gcc-interface/utils2.c b/gcc/ada/gcc-interface/utils2.c index 424a0c0..87cb269 100644 --- a/gcc/ada/gcc-interface/utils2.c +++ b/gcc/ada/gcc-interface/utils2.c @@ -2046,6 +2046,16 @@ build_allocator (tree type, tree init, tree result_type, Entity_Id gnat_proc, if (init && TREE_CODE (init) == NULL_EXPR) return build1 (NULL_EXPR, result_type, TREE_OPERAND (init, 0)); + /* If the initializer, if present, is a COND_EXPR, deal with each branch. */ + else if (init && TREE_CODE (init) == COND_EXPR) + return build3 (COND_EXPR, result_type, TREE_OPERAND (init, 0), + build_allocator (type, TREE_OPERAND (init, 1), result_type, + gnat_proc, gnat_pool, gnat_node, + ignore_init_type), + build_allocator (type, TREE_OPERAND (init, 2), result_type, + gnat_proc, gnat_pool, gnat_node, + ignore_init_type)); + /* If RESULT_TYPE is a fat or thin pointer, set SIZE to be the sum of the sizes of the object and its template. Allocate the whole thing and fill in the parts that are known. */ -- cgit v1.1