diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/tree-sra.c | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 330c180..4f5f8f5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2007-04-05 Alexandre Oliva <aoliva@redhat.com> + * tree-sra.c (try_instantiate_multiple_fields): Needlessly + initialize align to silence bogus warning. + +2007-04-05 Alexandre Oliva <aoliva@redhat.com> + PR middle-end/22156 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove all_no_warning. diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index a73f22d..0f76bb5 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -1431,7 +1431,11 @@ try_instantiate_multiple_fields (struct sra_elt *elt, tree f) return f; /* Taking the alignment of elt->element is not enough, since it - might be just an array index or some such. */ + might be just an array index or some such. We shouldn't need to + initialize align here, but our optimizers don't always realize + that, if we leave the loop without initializing align, we'll fail + the assertion right after the loop. */ + align = (unsigned HOST_WIDE_INT)-1; for (block = elt; block; block = block->parent) if (DECL_P (block->element)) { |
