Agenda for Thursday 3 August

Jim Dehnert dehnert at baalbek.engr.sgi.com
Mon Aug 7 22:03:21 UTC 2000


And this is done now, too.

Jim

> From samuel at indetermi.net Wed Aug  2 20:44:19 2000
> 
> Jim Dehnert <dehnert at baalbek.engr.sgi.com> writes:
> 
>   Jim>   2) Mangling grammar modifications.  There's an outstanding
>   Jim> ambiguity question, and the previously suggested solution would
>   Jim> eliminate substitution for some names, we thought.  Can you
>   Jim> look at this again, Alex?
> 
> I'm a bit confused here.  The current ABI draft has this production (in
> red):
> 
>     <name> ::= <substitution>  # (problem for name w/o signature)
> 
> I don't think this is an open issue anymore; I'm pretty sure we
> decided conclusively that, for good reasons, the name of a function
> without its parameter types should not be a substitution candidate.
> 
> I think the production that's still at issue is
> 
>     <encoding> ::= <substitution>
> 
> This production was present in my original grammar reformulation, but
> I asked that it be removed because of the abiguity with the sequence
> 
>     <encoding> ::= <name>
>     <name> ::= <unscoped-template-name>
>     <unscoped-template-name> ::= <substitution>
> 
> I feel that reintroducing the substitution of <encoding>s would
> significantly complicate the implementation of demanglers (including
> the existing implementation that we've debugged), and make it much
> harder to get right.  In fact, I'm not even sure it's possible.  
> 
> The only place you're hurt by not having this substitution, I think,
> is if you reference the same external name more than once in template
> arguments, for instance
> 
>     typedef void (*fnptr_t)();
>     template<fnptr_t T, fnptr_t U> class Bar {};
> 
>     extern void foo();
>     template Bar<foo, foo>; 
> 
> In this case, foo is mangled twice.  This shouldn't even hurt too
> much, because in non-trivial cases significant subcomponents of the
> second <encoding> should be substituted away.
> 
> So, given that it would complicate both existing demangler
> implementations and demangler implementations in principal, without
> saving much, I strongly suggest not including this production.
> 
> Regards
> Alex
> 
-	    Jim Dehnert		dehnert at sgi.com
				(650)933-4272




More information about the cxx-abi-dev mailing list