This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] S/390 port modernization 2/4


> ! static void
> ! s390_fix_watch_points (void)
>   {
> +   int tid = s390_inferior_tid ();
> + 
>     per_struct per_info;
>     ptrace_area parea;
>   
> +   CORE_ADDR watch_lo_addr = 0, watch_hi_addr = (CORE_ADDR)-1;
> +   struct watch_area *area;
> + 
> +   for (area = watch_base; area; area = area->next)
> +     {
> +       watch_lo_addr = min (watch_lo_addr, area->lo_addr);
> +       watch_hi_addr = max (watch_hi_addr, area->hi_addr);
> +     }
> + 

Is this correct?  Since CORE_ADDR is unsigned, the initial value of
watch_hi_addr will compare greater than any watch area's hi_addr, so
the 'max' will never change its value.  Same for watch_lo_addr.  Don't
you want to set watch_lo_addr to (CORE_ADDR) -1, and watch_hi_addr to
0?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]