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