diff options
Diffstat (limited to 'gcc/tree-dfa.c')
-rw-r--r-- | gcc/tree-dfa.c | 41 |
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; |