diff options
author | Richard Sandiford <richard.sandiford@linaro.org> | 2017-12-20 12:56:24 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2017-12-20 12:56:24 +0000 |
commit | 06889da8cc1feb59b65058c51e224bf78248781a (patch) | |
tree | 57a0599b5088de25892ba4b6ed4e28bf05925cce /gcc/tree.h | |
parent | a85d87b20c607cdcb878901cee8535bdd35489d4 (diff) | |
download | gcc-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.h | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -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 *); |