Marc Glisse <marc.gli...@inria.fr> wrote: >On Mon, 4 Nov 2013, Richard Biener wrote: > >> Well, host_integer_p (, 0) looks correct to me. But ... > >Ok, I'll put it back. > >>> Index: gcc/tree-ssa-alias.h >>> =================================================================== >>> --- gcc/tree-ssa-alias.h (revision 204267) >>> +++ gcc/tree-ssa-alias.h (working copy) >>> @@ -139,30 +139,30 @@ extern void pt_solution_set_var (struct >>> >>> extern void dump_pta_stats (FILE *); >>> >>> extern GTY(()) struct pt_solution ipa_escaped_pt; >>> >>> /* Return true, if the two ranges [POS1, SIZE1] and [POS2, SIZE2] >>> overlap. SIZE1 and/or SIZE2 can be (unsigned)-1 in which case >the >>> range is open-ended. Otherwise return false. */ >>> >>> static inline bool >>> -ranges_overlap_p (unsigned HOST_WIDE_INT pos1, >>> - unsigned HOST_WIDE_INT size1, >>> - unsigned HOST_WIDE_INT pos2, >>> - unsigned HOST_WIDE_INT size2) >>> +ranges_overlap_p (HOST_WIDE_INT pos1, >>> + HOST_WIDE_INT size1, >>> + HOST_WIDE_INT pos2, >>> + HOST_WIDE_INT size2) >> >> I think size[12] should still be unsigned (we don't allow negative >> sizes but only the special value -1U which we special-case only to >> avoid pos + size to wrap) > >But all we do with size[12] is compare it to -1 and perform arithmetic >with pos[12]. At least for the second one, we need to cast size to a >signed type so the comparisons make sense (unless we decide to use a >double_int there). So I thought I would do the cast in the argument. >Otherwise, I'll start the function with: >HOST_WIDE_INT ssize1 = (HOST_WIDE_INT)size1; >and replace size1 with ssize1 through the function. > >Is the reason of keeping size[12] unsigned for documentation? Or am I >missing a reason why I may be breaking things?
It is mostly documentation indeed. Richard.