This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

vtgc1.C spurious failures


I finally got sick of the flood of errors from vtgc1.C and looked it
up.  It turns out that there's nothing wrong with the compiler.  The
test is grepping a c++filt-ered assembly dump for strings like

        .vtable_inherit Multivv3 virtual table, 0

The compiler did emit a directive with that meaning, but obviously it
used a mangled name.  And the new ABI demangler uses a different
phrasing:

        .vtable_inherit _ZTV8Multivv3, 0

becomes

        .vtable_inherit vtable for Multivv3, 0

which obviously doesn't match the regexp.

The question is, should we change the test case or the demangler?
There are a whole bunch of names in the new ABI that demangle into
'foobar for <class>':

	import stub for %s
	virtual function thunk (delta:%d) for %s
	guard variable for %s
	vtable for %s
	VTT for %s
	typeinfo for %s
	typeinfo fn for %s
	typeinfo name for %s
	java Class for %s
	construction vtable for %s

We'd want to change all of them into '<class> foobar' if we changed
any.  Personally I think 'foobar for <class>' is clearer, but backward
compatibility might be more important.

Comments?

-- 
zw  "... Forget Odysseus--all the available parallels are with the house of
    Atreus.  Fond as I am of Greek tragedy, I'd rather not take part in any."
    "You're to be sacrificed for good winds?"
    "Or eaten.  Which reminds me.  Care for an apple?"
    	-- Stephen Brust and Emma Bull, _Freedom and Necessity_


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]