Failure of 2371.C

Martin von Loewis martin@mira.isdn.cs.tu-berlin.de
Sun Feb 15 00:16:00 GMT 1998


Is anybody else seeing that compilation of
gcc/testsuite/g++.old-deja/g++.jason/2371.C fails? Or is it my local
modifications that broke it? The symptom is that the compilation won't
terminate.

I've reduced that to a minimal example, which reads

template<class T>
class ListS {
public:
    class Vix {
    public:
	friend int operator!=(const Vix& x1, const Vix& x2)
	    { return 0; }
    };
};
class test {
};
template class ListS<test>;

The problem is that pushdecl () is called twice for
__ne__H1Z4test_RCQ2t5ListS1ZX013VixT0_i while in the global binding,
which will produce a cyclic list for the names in that binding. One
copy is produced when iterating over the friends of Vix, and the other
when iterating over the friends of ListS.

Anybody else seeing this?

Martin




More information about the Gcc mailing list