At Fri, 25 Oct 2013 15:54:43 +0200,
Justus Winter wrote:
> 
> Quoting Thomas Schwinge (2013-10-25 15:27:10)
> > > --- a/libports/create-internal.c
> > > +++ b/libports/create-internal.c
> > > @@ -109,10 +109,11 @@ _ports_create_port_internal (struct port_class 
> > > *class,
> > >    err = EINTR;
> > >   lose:
> > >    pthread_mutex_unlock (&_ports_lock);
> > > +  error_t e;
> > >   lose_unlocked:
> > > -  err = mach_port_mod_refs (mach_task_self (), port,
> > > -                         MACH_PORT_RIGHT_RECEIVE, -1);
> > > -  assert_perror (err);
> > > +  e = mach_port_mod_refs (mach_task_self (), port,
> > > +                       MACH_PORT_RIGHT_RECEIVE, -1);
> > > +  assert_perror (e);
> > >    free (pi);
> > >  
> > >    return err;
> > 
> > OK, but I suggest to move the definition of e after the lose_unlocked
> > label, 
> 
> I know it looks strange, but what you're suggesting is not
> possible. Labels can only be placed in front of a statement and a
> declaration is not a statement. Well, that's what gcc told me...

You can do: lose:;

Reply via email to