Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 May 2013 13:04:57 -0700
From:      Juli Mallett <jmallett@FreeBSD.org>
To:        Jung-uk Kim <jkim@freebsd.org>
Cc:        svn-src-projects@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r250638 - in projects/flex-sf: contrib/flex usr.bin/lex/lib
Message-ID:  <CACVs6=8LO1S5hiq3kHu%2Bp27qD3RyRtCJu0M3-tpbeCZzKx4emg@mail.gmail.com>
In-Reply-To: <201305141916.r4EJGs2Y056601@svn.freebsd.org>
References:  <201305141916.r4EJGs2Y056601@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, May 14, 2013 at 12:16 PM, Jung-uk Kim <jkim@freebsd.org> wrote:
> Log:
>   Fix build with GCC.
> Modified: projects/flex-sf/contrib/flex/scanflags.c
> ==============================================================================
> --- projects/flex-sf/contrib/flex/scanflags.c   Tue May 14 17:32:13 2013        (r250637)
> +++ projects/flex-sf/contrib/flex/scanflags.c   Tue May 14 19:16:54 2013        (r250638)
> @@ -62,7 +62,7 @@ sf_init (void)
>      _sf_stk = (scanflags_t*) flex_alloc ( sizeof(scanflags_t) * (_sf_max = 32));
>      if (!_sf_stk)
>          lerrsf_fatal(_("Unable to allocate %ld of stack"),
> -            (long)sizeof(scanflags_t));
> +            (void *)(uintptr_t)sizeof(scanflags_t));
>      _sf_stk[_sf_top_ix] = 0;
>  }

This looks pretty strange.  Moreover, it's not clear to me what the
benefit is of showing the sizeof scanflags_t, which isn't the amount
attempting to be allocated anyway, it's sizeof scanflags_t * 32,
right?  (The assignment in the multiplication in the allocation is
pretty shady, too.)

But really, why does %ld expect a pointer?  Is lerrsf_fatal some
esoteric thing that doesn't take varargs or use normal format strings?
 If not, just use %zu and get rid of the cast rollercoaster? The
pointer cast is pretty astonishingly-odd anyway.

Juli.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACVs6=8LO1S5hiq3kHu%2Bp27qD3RyRtCJu0M3-tpbeCZzKx4emg>