Assembler error (third submittal)

Stuart swhitman@s3i.com
Mon Mar 15 13:50:00 GMT 1999


I have submitted this error for the past 3 releases of egcs. Please
provide some feedback. Am I supplying enough information to fix this
bug?

Compiler version:
g++ -v
Reading specs from
/home/stu/l_home/gnu/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)

Command line used to compile and error message:
g++ -c foo.cc
/tmp/cc6778Ls.s: Assembler messages:
/tmp/cc6778Ls.s:233: Fatal error: Symbol _._t10SimSetLink1Z5AdMgr
already defined.

Machine info:
uname -a
Linux stu 2.0.36 #1 Tue Dec 29 13:11:13 EST 1998 i686 unknown

Assembler version:
as -v
GNU assembler version 2.9.1 (i686-pc-linux-gnu), using BFD version
2.9.1.0.15

Source Code:
template <class T> class SimSet {
};

template <class T> class SimSetLink {

public:
	SimSetLink () {}
	~SimSetLink () {}
};

template < class Parent,
	   class Child, 
	   SimSet<Child> Parent::* Root,
	   SimSetLink<Child> Child::* Link >
class SimSetInstance {
	Parent *	d_parent;
	typedef SimSetInstance	InstanceType;
public:
	SimSetInstance (const InstanceType & src)
		: d_parent (src.d_parent)
	{
	}
	 
	~SimSetInstance () {}

	class Iterator;
	friend class Iterator;

	class Iterator {
	public:
		Iterator (InstanceType setp)
		{
		}
		 
		~Iterator () {}
		 
		Child * operator () ()
		{
		}
	};
};


class AdMgr {
public:
	SimSetLink <AdMgr> d_admgr_grid_member;
};

class FlightGroup;

class AdGridCell {
public:
	SimSet<AdMgr> d_admgr_grid_owner;

	~AdGridCell();
};

typedef SimSetInstance < AdGridCell,    
			 AdMgr  , 
			 & AdGridCell::d_admgr_grid_owner,
			 & AdMgr::d_admgr_grid_member >  GridAdSiteSet  ;

class AirGrid {
public:
	static AirGrid* instance();
        GridAdSiteSet getAirDef(FlightGroup* fg);
};

class Surface2AirAdjudicationMgr {
public:
	Surface2AirAdjudicationMgr () {}
        ~Surface2AirAdjudicationMgr () {}

public:
        static void Adjudicate(FlightGroup* fg);
};

        void
Surface2AirAdjudicationMgr::Adjudicate(FlightGroup* fg)
{
	AirGrid* ag = AirGrid::instance();
	GridAdSiteSet set = ag->getAirDef(fg);
	GridAdSiteSet::Iterator it(set);
}


More information about the Gcc-bugs mailing list