More mangling issues

Jim Dehnert dehnert at baalbek.engr.sgi.com
Tue Mar 14 22:49:05 UTC 2000


> Date: Fri, 10 Mar 2000 15:31:16 -0800
> From: Daveed Vandevoorde <daveed at edg.com>
>
> > Another issue: for pointer-to-member types, is the M qualifier already
> > pointer in itself? I.e. given
> >
> >   _Z3fooPM2ABi
> >
> > Is this foo(int AB::*) or foo(int AB::**)?
>
> The latter. "M" is pointer-to-member (which accounts for the first "*" token)
> and P is plain pointer (to data or function).
>
> > Same for functions, which leads to the question what _Z3fooPPM2ABFiE is.
>
> If I'm not mistaken: Ret? foo(int (AB::***)()).

Actually, the mangling means that foo is a pointer to a pointer to a
member function of AB with int result and no parameters, which I think
is represented as:

        int (AB::***foo)();

True?

> Note the contrast with _Z3fooM2ABPPFiE which I think is
>       Ret? foo(int (**AB::*)())

Well, here foo is a pointer to member data of AB of type pointer to
pointer to function with int result and no parameters, which I think
is:

	int ( ** AB::*foo) ();

Am I close?

> Gotta love that syntax ;-)

Disgusting, I would have said...

Jim

-	    Jim Dehnert		dehnert at sgi.com
				(650)933-4272




More information about the cxx-abi-dev mailing list