home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!stanford.edu!ames!saimiri.primate.wisc.edu!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!cis.ohio-state.edu!lamothe.informatik.uni-dortmund.de!schwab
- From: schwab@lamothe.informatik.uni-dortmund.de (Andreas Schwab)
- Newsgroups: gnu.g++.bug
- Subject: G++ 2.3.3: inconsistent name mangling
- Date: 26 Jan 1993 22:01:55 -0500
- Organization: GNUs Not Usenet
- Lines: 37
- Sender: daemon@cis.ohio-state.edu
- Approved: bug-g++@prep.ai.mit.edu
- Distribution: gnu
- Message-ID: <9301261258.AA08755@lamothe.informatik.uni-dortmund.de>
- Reply-To: schwab@ls5.informatik.uni-dortmund.de (Andreas Schwab)
-
- The virtual table of struct B gets different names depending on the
- presence of the forward declaration of struct B in this situation:
-
- struct B;
- struct x
- {
- friend struct B;
- };
- struct A { virtual ~A (); };
- struct B : virtual A {};
-
- If the forward declaration is present, the following names are
- generated:
-
- 00000000 t gcc2_compiled.
- 00000000 t __$_1B
- 00000060 d __vt$1B$1A
- U __$_1A
- U ___builtin_delete
-
- When the first line is deleted, the following names are generated:
-
- 00000000 t gcc2_compiled.
- 00000000 t __$_1B
- 00000060 d __vt$B$1A
- U __$_1A
- U ___builtin_delete
-
- When the friend declaration is deleted, the same names as in the first
- case are generated, independent of the presence of the forward
- declaration for struct B.
-
- This situation occurs in libg++ 2.3 with class istream.
- --
- Andreas Schwab
- schwab@ls5.informatik.uni-dortmund.de
-
-