This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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] Scale DW_CFA_advance_loc[124] output values


On Wed, Nov 19, 2008 at 09:03:42PM +0100, Andreas Schwab wrote:
> Jakub Jelinek <jakub@redhat.com> writes:
> > +      else if ((exp->X_op == O_divide
> > +		|| exp->X_op == O_right_shift)
> > +	       && d->cie_info.code_alignment > 1)
> > +	{
> > +	  if (exp->X_add_symbol->bsym
> > +	      && exp->X_op_symbol->bsym
> > +	      && exp->X_add_symbol->sy_value.X_op == O_subtract
> > +	      && exp->X_op_symbol->sy_value.X_op == O_constant
> > +	      && ((exp->X_op == O_divide
> > +		   ? exp->X_op_symbol->sy_value.X_add_number
> > +		   : (offsetT) 1 << exp->X_op_symbol->sy_value.X_add_number)
> > +		  == d->cie_info.code_alignment))
> 
> ../../binutils/gas/ehopt.c: In function âcheck_eh_frameâ:
> ../../binutils/gas/ehopt.c:441: error: comparison between signed and unsigned

gcc 4.3.2 didn't complain, even with -W -Wall -Werror.
Anyway, guess the last line could be instead:
		  == (offsetT) d->cie_info.code_alignment))
(code_alignment is in range 0 through 127 only anyway).

	Jakub


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