C++: segfault (compiling QT)

Matthias Urlichs smurf@noris.de
Thu May 21 15:29:00 GMT 1998


This is egcs-current as of yesterday night.

I was unable to reduce this test case any further.

**************
gcc -v -c qga.cpp
**************
Reading specs from /usr/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.29/specs
gcc version egcs-2.91.29 19980517 (gcc2 ss-980502 experimental)
 /usr/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.29/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Di386 -Asystem(unix) -Acpu(i386) -Amachine(i386) -D__pentium__ -D__i586__ -D__i386__ -Asystem(unix) -Acpu(i386) -Amachine(i386) -D__pentium__ -D__i586__ qga.cpp /tmp/ccJ1rbzc.ii
GNU CPP version egcs-2.91.29 19980517 (gcc2 ss-980502 experimental) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/g++
 /usr/lib/g++-include
 /usr/local/include
 /usr/i586-pc-linux-gnu/include
 /usr/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.29/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.29/cc1plus /tmp/ccJ1rbzc.ii -quiet -dumpbase qga.cc -version -o /tmp/ccJ1rbzc.s
GNU C++ version egcs-2.91.29 19980517 (gcc2 ss-980502 experimental) (i586-pc-linux-gnu) compiled by GNU C version egcs-2.91.28 19980508 (gcc2 ss-980502 experimental).
qga.cpp: gcc: Internal compiler error: program cc1plus got fatal signal 11

**************
template<class type> class QIntDictT { };
						 
class QGArray					 
{
public:
    QGArray( int size );			 
    virtual void detach()	{ }
};



template<class type> class QArrayT : public QGArray
{
public:
    QArrayT( int size ) : QGArray(size*sizeof(type)) {}

    void  detach()		{ QGArray::detach(); }
};



class QPoint
{
public: bool   isNull()	const;
};


class QRect					 
{
};



class QWidget
{						 
public:
    QWidget( QWidget *parent=0, const char *name=0 );
   ~QWidget();

    void setAutoMinimumSize( bool ) {}
    const char	*iconText()	const;
};



class QGList
{
public:
    int  count() const;			 
    void  clear();				 
};


template<class type> class QListT : public QGList
{
public:
    int  count()   const		{ return QGList::count(); }
};


class QFrame : public QWidget			 
{
};


struct WidgetInfo {
    QRect geom;
    QWidget *widget;
};
typedef QIntDictT <WidgetInfo> wDict;

class QChain
{
public:
    QChain() { }
    virtual ~QChain() {}
    virtual void distribute( wDict&) = 0;
};
class QSerChain : public QChain
{
public:
    QSerChain( ) : QChain( ), empty(1) {}
    ~QSerChain();
    void distribute( wDict &);
    bool empty;
    QListT <QChain> chain;
};
void QSerChain::distribute( wDict & wd )
{
    typedef int fixed;
    QArrayT <fixed> sizes( chain.count() );
}
**************

-- 
Matthias Urlichs
noris network GmbH



More information about the Gcc-bugs mailing list