mangling template args with C linkage

Alex Samuel samuel at codesourcery.com
Tue Apr 11 07:29:33 UTC 2000


Mangling question.  Suppose you have:

    template<void (* P) (void)> class TemplateClass {};

    extern "C" void foo (void);

    TemplateClass<&foo> x;

Does the template argument foo get mangled as "foo" or "3foov"?  The
production

    <template-arg> ::= LZ <encoding> E

would seem to imply the second, but it seems odd to mangle the name of
a function with C linkage.

Alex Samuel
CodeSourcery, LLC




More information about the cxx-abi-dev mailing list