summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2007-02-04 17:58:26 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2007-02-04 17:58:26 +0000
commit08e5bc4391d6a11aeb9682cf32ae6f21b5adee9b (patch)
treeebf9b6a637e311e78230c745394e771d955d4685 /gcc
parent905ea169ed780b49270a1e2a71bf81c9619b5d14 (diff)
downloadgcc-08e5bc4391d6a11aeb9682cf32ae6f21b5adee9b.tar.gz
* tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
vectors might cause maybe_lookup_element_for_expr to be called on non-sra-candidate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121578 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-sra.c9
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 50aa8f191db..af87922453b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-04 Jan Hubicka <jh@suse.cz>
+
+ * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
+ vectors might cause maybe_lookup_element_for_expr to be called
+ on non-sra-candidate.
+
2007-02-04 Kazu Hirata <kazu@codesourcery.com>
* config/bfin/bfin-modes.def, config/bfin/bfin.c,
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index a2d28cac2c4..03f9b59526a 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -793,10 +793,13 @@ sra_walk_expr (tree *expr_p, block_stmt_iterator *bsi, bool is_output,
/* A bit field reference to a specific vector is scalarized but for
ones for inputs need to be marked as used on the left hand size so
when we scalarize it, we can mark that variable as non renamable. */
- if (is_output && TREE_CODE (TREE_TYPE (TREE_OPERAND (inner, 0))) == VECTOR_TYPE)
+ if (is_output
+ && TREE_CODE (TREE_TYPE (TREE_OPERAND (inner, 0))) == VECTOR_TYPE)
{
- struct sra_elt *elt = maybe_lookup_element_for_expr (TREE_OPERAND (inner, 0));
- elt->is_vector_lhs = true;
+ struct sra_elt *elt
+ = maybe_lookup_element_for_expr (TREE_OPERAND (inner, 0));
+ if (elt)
+ elt->is_vector_lhs = true;
}
/* A bit field reference (access to *multiple* fields simultaneously)
is not currently scalarized. Consider this an access to the