Rainer Orth <r...@cebitec.uni-bielefeld.de> writes:

> diff --git a/gcc/ada/init.c b/gcc/ada/init.c
> --- a/gcc/ada/init.c
> +++ b/gcc/ada/init.c
> @@ -1031,7 +1031,7 @@ __gnat_install_handler (void)
>       exceptions.  Make sure that the handler isn't interrupted by another
>       signal that might cause a scheduling event!  */
>  
> -  act.sa_handler = __gnat_error_handler;
> +  act.sa_sigaction = __gnat_error_handler;
>    act.sa_flags = SA_NODEFER | SA_RESTART | SA_SIGINFO;
>    sigemptyset (&act.sa_mask);
>  
> diff --git a/gcc/ada/tracebak.c b/gcc/ada/tracebak.c
> --- a/gcc/ada/tracebak.c
> +++ b/gcc/ada/tracebak.c
> @@ -482,12 +482,12 @@ __gnat_backtrace (void **array,
>    while (cnt < size)
>      {
>        if (STOP_FRAME (current, top_stack) ||
> -       !VALID_STACK_FRAME((char *)(current->return_address + PC_ADJUST)))
> +       !VALID_STACK_FRAME(((char *) current->return_address) + PC_ADJUST))
>          break;
>  
>        if (current->return_address < exclude_min
>         || current->return_address > exclude_max)
> -        array[cnt++] = current->return_address + PC_ADJUST;
> +        array[cnt++] = ((char *) current->return_address) + PC_ADJUST;
>  
>        current = (struct layout *) ((size_t) current->next + FRAME_OFFSET 
> (1));
>      }


These patches are OK unless some Ada maintainer objects in the next 24
hours.

Thanks.

Ian

Reply via email to