diff options
author | Richard Sandiford <richard.sandiford@linaro.org> | 2017-11-20 16:02:55 +0000 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@linaro.org> | 2017-11-20 16:02:55 +0000 |
commit | d58952aefb03632bbb5b441d5c0bd330711f0af1 (patch) | |
tree | d046e56bfbd6a40106ae6ab96fafc954f1dfc955 /gcc/tree.c | |
parent | 648f8fc59b2cc39abd24f4c22388b346cdebcc31 (diff) | |
parent | 50221fae802a10fafe95e61d40504a58da33e98f (diff) | |
download | gcc-d58952aefb03632bbb5b441d5c0bd330711f0af1.tar.gz |
Merge trunk into svelinaro-dev/sve
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/gcc/tree.c b/gcc/tree.c index e5ee29e49ce..7e1ccfd9cbe 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -2976,13 +2976,9 @@ really_constant_p (const_tree exp) /* Return true if T holds a polynomial pointer difference, storing it in *VALUE if so. A true return means that T's precision is no greater than 64 bits, which is the largest address space we support, so *VALUE - never loses precision. However, the signedness of the result is - somewhat arbitrary, since if B lives near the end of a 64-bit address - range and A lives near the beginning, B - A is a large positive value - outside the range of int64_t. A - B is likewise a large negative value - outside the range of int64_t. All the pointer difference really - gives is a raw pointer-sized bitstring that can be added to the first - pointer value to get the second. */ + never loses precision. However, the signedness of the result does + not necessarily match the signedness of T: sometimes an unsigned type + like sizetype is used to encode a value that is actually negative. */ bool ptrdiff_tree_p (const_tree t, poly_int64_pod *value) |