This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
vtgc1.C spurious failures
- To: gcc at gcc dot gnu dot org
- Subject: vtgc1.C spurious failures
- From: "Zack Weinberg" <zackw at stanford dot edu>
- Date: Fri, 16 Feb 2001 17:14:31 -0800
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_