Andy Green wrote:
On 06/01/2009 09:19 PM, Rex Dieter wrote:
> g++ -c -o
> project.o -pipe -I. -Igenerators -Igenerators/unix -Igenerators/win32
> -Igenerators/mac -I/builddir/build/BUILD/qt-x11-free-3.3.8b/include/qmake
> -I/builddir/build/BUILD/qt-x11-free-3.3.8b/include
> -I/builddir/build/BUILD/qt-x11-free-3.3.8b/include -DQT_NO_TEXTCODEC
> -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL -DQT_NO_COMPRESS
> -I/builddir/build/BUILD/qt-x11-free-3.3.8b/mkspecs/linux-g++
> -DHAVE_QCONFIG_CPP project.cpp In file included from
> /builddir/build/BUILD/qt-x11-free-3.3.8b/include/qtextstream.h:46, from
> /builddir/build/BUILD/qt-x11-free-3.3.8b/include/qtl.h:46, from
> /builddir/build/BUILD/qt-x11-free-3.3.8b/include/qvaluelist.h:45, from
> /builddir/build/BUILD/qt-x11-free-3.3.8b/include/qstringlist.h:45, from
> project.h:42, from project.cpp:39:
> /builddir/build/BUILD/qt-x11-free-3.3.8b/include/qstring.h: In member
> function 'ushort& QChar::unicode()':
> /builddir/build/BUILD/qt-x11-free-3.3.8b/include/qstring.h:202: error:
> cannot bind packed field '((QChar*)this)->QChar::ucs' to
'ushort&'
> qmake failed to build. Aborting.
> Any hints, pointers?
From a Google around, it seems the compiler won't let you make a
non-const reference to this packed member.
OK, I think this code path doesn't hit on other archs, on arm
Q_NO_PACKED_REFERENCE is defined, and the code is:
#ifdef Q_NO_PACKED_REFERENCE
ushort &unicode() { return *((ushort *)&ucs); }
#else
ushort &unicode() { return ucs; }
#endif
Now, I'll stare at this until my eyes bleed to see where to stuff a (const)
-- Rex