diff options
author | steven <steven@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-12-20 11:26:47 +0000 |
---|---|---|
committer | steven <steven@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-12-20 11:26:47 +0000 |
commit | 42b746980785a6cc298a04f4308c63b4ec34bacb (patch) | |
tree | 9c25a2d0ac01a41629a94a7371f5c14a2e9e6fe0 /gcc/tree.h | |
parent | cf55bc95ba3e9544729d48d834f5316cbee679a5 (diff) | |
download | gcc-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.h | 3 |
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. */ |