------- Comment #8 from pinskia at gcc dot gnu dot org 2006-08-20 01:40 ------- Here is an even shorter testcase for qstring.ii: struct QChar { QChar( const QChar& c ); unsigned short ucs; }; inline QChar::QChar( const QChar& c ) : ucs( c.ucs ){} inline bool operator!=( QChar c1, QChar c2 ) { return c1.ucs != c2.ucs; } struct QStringData { QChar *unicode; }; struct QString { bool isNull() const; unsigned 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 unsigned QString::length() const{} bool QString::endsWith( const QString& s, bool cs ) const { if ( isNull() ) return s.isNull(); int pos = length(); for ( int i = 0; i < (int) s.length(); i++ ) if ( (d->unicode[pos + i]) != (s.d->unicode[i]) ) return 0; }
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28780