------- Comment #7 from tbm at cyrius dot com 2006-08-19 18:54 ------- typedef unsigned char uchar; typedef unsigned short ushort; typedef unsigned uint; const bool FALSE = 0; struct __attribute__ ((visibility ("default"))) QShared { }; class __attribute__ ((visibility ("default"))) QChar { public:QChar (); QChar (const QChar & c); uchar row () const { return ((uchar) (ucs >> 8) & 0xff); } private: ushort ucs; } ; inline QChar::QChar (const QChar & c): ucs (c.ucs) { } inline bool operator!= (QChar c1, QChar c2) { } struct __attribute__ ((visibility ("default"))) QStringData:public QShared { QChar *unicode; }; class __attribute__ ((visibility ("default"))) QString { bool isNull () const; uint length () const; const QChar *unicode () const { return d->unicode; } bool endsWith (const QString & str, bool cs) const; QStringData *d; }; inline bool QString::isNull () const { return unicode () == 0; } inline uint QString::length () const { } inline QChar lower (const QChar & c) { if (c.row ()) return c; } bool QString::endsWith (const QString & s, bool cs) const { if (isNull ()) return s.isNull (); int pos = length () - s.length (); { for (int i = 0; i < (int) s.length (); i++) { if (::lower (d->unicode[pos + i]) !=::lower (s.d->unicode[i])) return FALSE; } } }
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28780