Comments
Patch
From 3ffab79f5fd56a6578fb2e38035275b759729a3f Mon Sep 17 00:00:00 2001
From: Sebastian Pop <sebpop@gmail.com>
Date: Mon, 3 Jan 2011 17:06:56 -0600
Subject: [PATCH] Handle COND_EXPR in walk_stmt_load_store_addr_ops.
---
gcc/gimple.c | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
@@ -4931,6 +4931,20 @@ walk_stmt_load_store_addr_ops (gimple stmt, void *data,
&& TREE_CODE (OBJ_TYPE_REF_OBJECT (rhs)) == ADDR_EXPR)
ret |= visit_addr (stmt, TREE_OPERAND (OBJ_TYPE_REF_OBJECT (rhs),
0), data);
+ /* FIXME: COND_EXPR should be moved to non-single RHS at
+ some point. */
+ else if (TREE_CODE (rhs) == COND_EXPR)
+ {
+ tree op1 = TREE_OPERAND (rhs, 1);
+ tree op2 = TREE_OPERAND (rhs, 2);
+
+ if (TREE_CODE (op1) == ADDR_EXPR)
+ ret |= visit_addr (stmt, TREE_OPERAND (op1, 0), data);
+
+ if (TREE_CODE (op2) == ADDR_EXPR)
+ ret |= visit_addr (stmt, TREE_OPERAND (op2, 0), data);
+ }
+
lhs = gimple_assign_lhs (stmt);
if (TREE_CODE (lhs) == TARGET_MEM_REF
&& TREE_CODE (TMR_BASE (lhs)) == ADDR_EXPR)
--
1.7.1