aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2017-12-20 12:56:24 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2017-12-20 12:56:24 +0000
commit06889da8cc1feb59b65058c51e224bf78248781a (patch)
tree57a0599b5088de25892ba4b6ed4e28bf05925cce /gcc/tree.h
parenta85d87b20c607cdcb878901cee8535bdd35489d4 (diff)
downloadgcc-06889da8cc1feb59b65058c51e224bf78248781a.zip
gcc-06889da8cc1feb59b65058c51e224bf78248781a.tar.gz
gcc-06889da8cc1feb59b65058c51e224bf78248781a.tar.bz2
poly_int: expand_debug_expr
This patch makes expand_debug_expr track polynomial memory offsets. It simplifies the handling of the case in which the reference is not to the first byte of the base, which seemed non-trivial enough to make it worth splitting out as a separate patch. 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * tree.h (get_inner_reference): Add a version that returns the offset and size as poly_int64_pods rather than HOST_WIDE_INTs. * cfgexpand.c (expand_debug_expr): Track polynomial offsets. Simply the case in which bitpos is not associated with the first byte. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r255892
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index a7b8c2f..db87321 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -5638,6 +5638,17 @@ extern bool complete_ctor_at_level_p (const_tree, HOST_WIDE_INT, const_tree);
the access position and size. */
extern tree get_inner_reference (tree, HOST_WIDE_INT *, HOST_WIDE_INT *,
tree *, machine_mode *, int *, int *, int *);
+/* Temporary. */
+inline tree
+get_inner_reference (tree exp, poly_int64_pod *pbitsize,
+ poly_int64_pod *pbitpos, tree *poffset,
+ machine_mode *pmode, int *punsignedp,
+ int *preversep, int *pvolatilep)
+{
+ return get_inner_reference (exp, &pbitsize->coeffs[0], &pbitpos->coeffs[0],
+ poffset, pmode, punsignedp, preversep,
+ pvolatilep);
+}
extern tree build_personality_function (const char *);