Mangling: grammar too permissive

Martin von Loewis loewis at informatik.hu-berlin.de
Tue Mar 28 17:20:19 UTC 2000


> No, it's needed to be able to substitute for Ktype when we've
> already seen VKtype.

Ah, right.

> > 2. extra alternatives in <encoding-type>: In all cases where an
> >    encoding-type can occur, it always identifies a
> >    bare-function-type; it never is a type or a substitution on its
> >    own. Therefore, I propose to remove the encoding-type, and replace
> >    its two occurences with bare-function-type.
> 
> No, <encoding-type> also encodes a <type> in the case of a vtable,
> where <name> is the <special-name> VT, and <type> is the relevant class
> type.  (Though this could probably be fixed by other rearrangements.)

As I said, I'd prefer the other arrangement. As a matter of fact, I
didn't really grasp the idea that the top-level type could be used to
denote the type for the vtable. So even if this approach is used, the
documentation should be better, e.g. in the VT description

  # <encoding-type> is vtable's class type

Also, a forward references could not hurt:

  <encoding-type> ::= <type>                # for vtables
                  ::= <bare-function-type>  # for functions   
                  ::= <substitution>        # In what cases?

The <substitution> case refers to the substitution section, but
that does not talk about <encoding-type>s at all...

Regards,
Martin




More information about the cxx-abi-dev mailing list