aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-dfa.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-dfa.c')
-rw-r--r--gcc/tree-dfa.c41
1 files changed, 39 insertions, 2 deletions
diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c
index 5cfbe1c..f065f5d 100644
--- a/gcc/tree-dfa.c
+++ b/gcc/tree-dfa.c
@@ -254,6 +254,37 @@ debug_referenced_vars (void)
}
+/* Dump sub-variables for VAR to FILE. */
+
+void
+dump_subvars_for (FILE *file, tree var)
+{
+ subvar_t sv = get_subvars_for_var (var);
+
+ if (!sv)
+ return;
+
+ fprintf (file, "{ ");
+
+ for (; sv; sv = sv->next)
+ {
+ print_generic_expr (file, sv->var, dump_flags);
+ fprintf (file, " ");
+ }
+
+ fprintf (file, "}");
+}
+
+
+/* Dumb sub-variables for VAR to stderr. */
+
+void
+debug_subvars_for (tree var)
+{
+ dump_subvars_for (stderr, var);
+}
+
+
/* Dump variable VAR and its may-aliases to FILE. */
void
@@ -316,6 +347,12 @@ dump_variable (FILE *file, tree var)
dump_may_aliases_for (file, var);
}
+ if (get_subvars_for_var (var))
+ {
+ fprintf (file, ", sub-vars: ");
+ dump_subvars_for (file, var);
+ }
+
fprintf (file, "\n");
}
@@ -741,8 +778,8 @@ find_new_referenced_vars (tree *stmt_p)
size, in bits, of REF inside the return value. */
tree
-okay_component_ref_for_subvars (tree ref, HOST_WIDE_INT *poffset,
- HOST_WIDE_INT *psize)
+okay_component_ref_for_subvars (tree ref, unsigned HOST_WIDE_INT *poffset,
+ unsigned HOST_WIDE_INT *psize)
{
tree result = NULL;
HOST_WIDE_INT bitsize;