summaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>2004-12-20 11:26:47 +0000
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>2004-12-20 11:26:47 +0000
commit42b746980785a6cc298a04f4308c63b4ec34bacb (patch)
tree9c25a2d0ac01a41629a94a7371f5c14a2e9e6fe0 /gcc/tree.h
parentcf55bc95ba3e9544729d48d834f5316cbee679a5 (diff)
downloadgcc-42b746980785a6cc298a04f4308c63b4ec34bacb.tar.gz
gcc/
PR middle-end/18191 PR middle-end/18965 PR middle-end/18999 * expr.c (categorize_ctor_elements_1): Count the total number of elements in the constructor. (categorize_ctor_elements): Return it in a new argument. * tree.h (categorize_ctor_elements): Adjust prototype. * gimplify.c (gimplify_init_ctor_eval_range): New. (gimplify_init_ctor_eval): Gimplify RANGE_EXPR. (gimplify_init_constructor): Block clear the object if the constructor has fewer elements than the object type. Only try to add assignments to individual elements when we have to. testsuite/ * gcc.dg/20041219-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92415 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index fa328bedad2..90d17e5cc41 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -3226,7 +3226,8 @@ extern int fields_length (tree);
extern bool initializer_zerop (tree);
-extern void categorize_ctor_elements (tree, HOST_WIDE_INT *, HOST_WIDE_INT *);
+extern void categorize_ctor_elements (tree, HOST_WIDE_INT *,
+ HOST_WIDE_INT *, HOST_WIDE_INT *);
extern HOST_WIDE_INT count_type_elements (tree);
/* add_var_to_bind_expr (bind_expr, var) binds var to bind_expr. */