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:;