On 8/28/07, Viktor Griph <[EMAIL PROTECTED]> wrote:
> On Tue, 28 Aug 2007, seventh guardian wrote:
>
> > On 8/28/07, Dominik Vogt <[EMAIL PROTECTED]> wrote:
> >> On Tue, Aug 28, 2007 at 02:13:20PM +0100, seventh guardian wrote:
> >>> On 8/28/07, seventh guardian <[EMAIL PROTECTED]> wrote:
> >>>> OOPS:
> >>>>
> >>>> $ make CFLAGS="-g -O2 -Wall -Wpointer-arith -fno-strict-aliasing -Werror"
> >>>>
> >>>> make  all-recursive
> >>>> make[1]: Entering directory `/home/renato/apps/cvs/fvwm'
> >>>> Making all in libs
> >>>> make[2]: Entering directory `/home/renato/apps/cvs/fvwm/libs'
> >>>> Flocale.c:1464: warning: comparison with string literal results in 
> >>>> unspecified b
> >>>> ehaviour
> >>
> >>>> I'm not sure of how severe this warning is.. Is it a show-stopper?
> >>>
> >>> It is a show-stopper. There were some nasty char* == "foo bar" tests.
> >>> Jeez.. I'll fix them.
> >>
> >> I think the idea is that for every string literal there is only
> >> one actual instance in the executable, so the code is safe.  But
> >> instead of using macros we should rather have
> >>
> >>   Flocale.c
> >>   ---------
> >>   static const char *fft_fallback_font = FLOCALE_FFT_FALLBACK_FONT;
> >>
> >>   ...
> >>
> >>   if (fn != fft_fallback_font)
> >>   ...
> >
> > Makes sense. I was using strcasecmp, but that should be faster.
> >
>
> Using strcasecmp is wrong, since that would mean that anyonw entering the
> smae font as the fallback would have a memory leak. The test is there to
> not try to free string literals.

I see. But on the other hand, it wasn't comparing pointers, it was
comparing a pointer with a string literal..

> What compiler are you using?

gcc-4.2.0

  Renato

Reply via email to