Bug#604119: libgstreamer0.10-dev: inline function throw away constness, causing warnings from compilter

Petter Reinholdtsen pere at hungry.com
Sat Nov 20 13:12:04 UTC 2010


Package: libgstreamer0.10-dev
Version: 0.10.30-1
Severity: important

When building gnash, heaps and heaps of compiler warning like this
show up when building in Squeeze:

  /usr/include/gstreamer-0.10/gst/gstutils.h:700: warning: cast from type 'const guint8*' to type 'guint8*' casts away constness
  /usr/include/gstreamer-0.10/gst/gstutils.h:728: warning: cast from type 'const guint8*' to type 'guint8*' casts away constness
  /usr/include/gstreamer-0.10/gst/gstutils.h:756: warning: cast from type 'const guint8*' to type 'guint8*' casts away constness

A complete list of warnings can be seen in <URL: http://gnashdev.org:8010/builders/squeeze-linux-x86/builds/15/steps/compile/logs/warnings%20(332) >.

To reproduce this, compile this source with lots of warning enabled:

  % cat x.c
  #include <gst/gst.h>
  int main(int argc, char *argv[]) { return 0; }
  % gcc -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith \
    -Wreturn-type -Wmissing-declarations -Wmissing-prototypes \
    -Wstrict-prototypes $(pkg-config --cflags --libs gstreamer-0.10) \
    -c x.c

The cause is code like this, throwing away the constness of the input:

  inline static gfloat
  GST_READ_FLOAT_LE(const guint8 *data)
  {
    union
    {
      guint32 i;
      gfloat f;
    } u;

    u.i = GST_READ_UINT32_LE (data);
    return u.f;
  }

Setting severity to important, as this problem make it hard to find
the warnings in the gnash code.

The problem do not exist in version 0.10.19-3 in Lenny.

Happy hacking,
-- 
Petter Reinholdtsen





More information about the pkg-gstreamer-maintainers mailing list