This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
possible gcc bug: compilation problem kdelibs/arts & gcc 3.0
- To: gcc-bugs at gcc dot gnu dot org
- Subject: possible gcc bug: compilation problem kdelibs/arts & gcc 3.0
- From: Gerald Roth <gerald dot roth at aon dot at>
- Date: Sun, 29 Apr 2001 00:11:55 +0200
- Organization: University of Graz, Austria
hi
when trying to compile kdelibs/arts/flow/convert.cc (recent kde cvs - file is
attached) with gcc 3.0 (recent cvs gcc-3_0-branch) i get the following error:
make[4]: Entering directory `/usr/src/kde2/cvs/kdelibs/arts/flow'
/bin/sh ../../libtool --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I.
-I../.. -I../../dcop -I../../libltdl -I../../kdecore -I../../kdeui
-I../../kssl -I/usr/src/kde2/cvs/qt-copy/include -I/usr/X11R6/include
-I/opt/kde/include -I../../arts/mcop -D_REENTRANT -O2 -DNDEBUG
-fno-exceptions -fno-check-new -Wall -pedantic -W -Wpointer-arith
-Wmissing-prototypes -Wwrite-strings -Wno-long-long -Wnon-virtual-dtor
-fno-builtin -O3 -march=athlon -frtti -DQT_NO_TRANSLATION
-DQT_CLEAN_NAMESPACE -DQT_NO_COMPAT -DQT_NO_ASCII_CAST -c convert.cc
g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../dcop -I../../libltdl
-I../../kdecore -I../../kdeui -I../../kssl
-I/usr/src/kde2/cvs/qt-copy/include -I/usr/X11R6/include -I/opt/kde/include
-I../../arts/mcop -D_REENTRANT -O2 -DNDEBUG -fno-exceptions -fno-check-new
-Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings
-Wno-long-long -Wnon-virtual-dtor -fno-builtin -O3 -march=athlon -frtti
-DQT_NO_TRANSLATION -DQT_CLEAN_NAMESPACE -DQT_NO_COMPAT -DQT_NO_ASCII_CAST
-Wp,-MD,.deps/convert.pp -c convert.cc -fPIC -DPIC -o .libs/convert.o
convert.cc: In function `void Arts::convert_stereo_2float_i16le(long unsigned
int, float*, float*, unsigned char*)':
convert.cc:33: output number 0 not directly addressable
convert.cc:33: output number 0 not directly addressable
convert.cc:33: inconsistent operand constraints in an `asm'
convert.cc:33: inconsistent operand constraints in an `asm'
convert.cc: In function `void Arts::convert_mono_float_16le(long unsigned int,
float*, unsigned char*)':
convert.cc:33: output number 0 not directly addressable
convert.cc:33: inconsistent operand constraints in an `asm'
convert.cc: In function `void Arts::convert_stereo_2float_i16be(long unsigned
int, float*, float*, unsigned char*)':
convert.cc:33: output number 0 not directly addressable
convert.cc:33: output number 0 not directly addressable
convert.cc:33: inconsistent operand constraints in an `asm'
convert.cc:33: inconsistent operand constraints in an `asm'
convert.cc: In function `void Arts::convert_mono_float_16be(long unsigned int,
float*, unsigned char*)':
convert.cc:33: output number 0 not directly addressable
convert.cc:33: inconsistent operand constraints in an `asm'
make[4]: *** [convert.lo] Error 1
make[4]: Leaving directory `/usr/src/kde2/cvs/kdelibs/arts/flow'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/usr/src/kde2/cvs/kdelibs/arts/flow'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/src/kde2/cvs/kdelibs/arts'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/kde2/cvs/kdelibs'
make: *** [all-recursive-am] Error 2
bash-2.04#
i have already contacted stefan westerfeld, the arts developer, about this
issue. here is his reply:
> Hi!
>
> Well, to be honest, I have no idea what this error message is about. ;-).
> I've just copied the lines from some code snipped collection. So maybe you
> could try to find somebody on the gcc-lists who can tell you whether this
> is a gcc bug or not, and how the code should look instead if it's indeed a
> kde bug?
>
> Cu... Stefan
is this a
1) gcc bug
2) kde bug ?
if 1), what could i do to help you fix it ?
if 2), how is it fixed?
thank you
gerald
here is the relevant part of kdelibs/arts/flow/convert.cc
[snip]
#ifdef HAVE_X86_FLOAT_INT
static inline long QRound (float inval)
{
long ret;
asm ("fistpl %0" : "=m" (ret) : "t" (inval) : "st");
return ret;
}
#else
static inline long QRound (float inval)
{
return (long)inval;
}
#endif
[snip]