This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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: [RFA:] More compact EH frame info for synchronous EH


> Date: Wed, 13 Apr 2005 20:32:28 -0700
> From: Richard Henderson <rth@redhat.com>

> On Tue, Apr 12, 2005 at 09:44:49PM +0200, Hans-Peter Nilsson wrote:
> > *** dwarf2.h	6 Oct 2004 20:27:15 -0000	1.29
> > --- dwarf2.h	12 Apr 2005 15:13:02 -0000
> > *************** enum dwarf_line_number_x_ops
> > *** 669,674 ****
> > --- 669,677 ----
> >   /* Call frame information.  */
> >   enum dwarf_call_frame_info
> >     {
> > +     /* Use only internally, as a marker.  */
> > +     DW_CFA_GNU_BARRIER = -1,
> 
> This file is kept in sync with copies in other projects.  I don't see
> any need to put this here, rather than a local define in dwarf2out.c.

With:
/* Internally used marker value extra to enum dwarf_call_frame_info.  */
#define DW_CFA_GNU_BARRIER -1

I get, from stage1/xgcc:

x/gcc/dwarf2out.c: In function 'cfi_redundant':
x/gcc/dwarf2out.c:2009: warning: comparison between signed and unsigned
x/gcc/dwarf2out.c: In function 'output_cfi':
x/gcc/dwarf2out.c:2107: warning: comparison between signed and unsigned
x/gcc/dwarf2out.c: In function 'sort_cfis':
x/gcc/dwarf2out.c:2437: warning: comparison between signed and unsigned

for:
	  while (tail != NULL && tail->dw_cfi_opc == DW_CFA_GNU_BARRIER);
...
  if (cfi->dw_cfi_opc == DW_CFA_GNU_BARRIER)
...
       next_cfi != NULL && next_cfi->dw_cfi_opc != DW_CFA_GNU_BARRIER;

If you insist, I could grab an unsigned value out of thin air,
say 0xffff, but I'm very hesitant and do consider the enum
declaration as the definition of the value domain of that type.

I'm sure other projects than gcc can make use of an internal
marker value.  Rename to DW_CFA_GNU_MARKER?

brgds, H-P


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