summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErick Ochoa <erick.ochoa@theobroma-systems.com>2020-04-29 12:40:07 +0200
committerErick Ochoa <erick.ochoa@theobroma-systems.com>2020-04-29 12:40:07 +0200
commit4baaf411c2ad51566881641f9c8b35e8f9f30eb6 (patch)
tree89890e9b8fc4ebfa93bbc2ab3827ac8e4e086199
parent0c671014c9c48959140465c58417d57141e68854 (diff)
Recurses down component ref
-rw-r--r--gcc/ipa-hello-world.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/ipa-hello-world.c b/gcc/ipa-hello-world.c
index 7489478f1f4..2513a344574 100644
--- a/gcc/ipa-hello-world.c
+++ b/gcc/ipa-hello-world.c
@@ -107,6 +107,7 @@ typedef std::set<const_tree> record_set;
enum access_code { READ_ACCESS, WRITE_ACCESS };
+void count_access_for_types_in_expr(const_tree expr, const record_set &non_escaping_records, field_access_counter &counter, const enum access_code access);
void
count_access_for_type_in_component_ref(const_tree component_ref, const record_set &non_escaping_records, field_access_counter &counter, const enum access_code access)
@@ -118,6 +119,8 @@ count_access_for_type_in_component_ref(const_tree component_ref, const record_se
const_tree _struct = TREE_OPERAND(component_ref, 0);
gcc_assert(_struct);
+
+ count_access_for_types_in_expr(_struct, non_escaping_records, counter, READ_ACCESS);
const_tree tree_type_struct = TREE_TYPE(_struct);
gcc_assert(tree_type_struct);
enum tree_code tree_type_struct_code = TREE_CODE(tree_type_struct);
@@ -182,7 +185,6 @@ is_addr_expr_p(const_tree expr)
gcc_assert(is_addr_expr);
}
-void count_access_for_types_in_expr(const_tree expr, const record_set &non_escaping_records, field_access_counter &counter, const enum access_code access);
void
count_access_for_type_in_addr_expr(const_tree expr, const record_set &non_escaping_records, field_access_counter &counter, const enum access_code access)