[cfe-commits] Fix PR13434 - mangling of templates with function pointers as arguments

Charles Davis cdavis at mymail.mines.edu
Mon Jul 23 13:53:25 PDT 2012


On Jul 23, 2012, at 5:52 AM, Timur Iskhodzhanov wrote:

> Hi Charles, John,
> 
> Can you please see
> http://llvm.org/bugs/show_bug.cgi?id=13434
> ?
> It seems like this case has never been tested before.
> 
> I've written some tests and made a simple fix to the code.
> 
> It's not thoroughly tested on all cases but IMO adding at least some
> new coverage and making all new tests pass by a simple is a good
> progress to start with.
> 
> Two questions:
> 1) See the FIXME comment in MicrosoftMangle - I do think the whole
> comment should be made less cryptic.
>  Probably I'll need some help from Charles to decipher this :)
I already acted on that suggestion. You can safely remove the 'I'll probably haveā€¦' part.
> 
> 2) See the zeta mangling in mangle-ms.cpp - not sure if changing the
> mangling there is a problem at all, as "blocks" are never
> compiled/mangled by MSVS (they are clang-specific extensions).
OK, but what about lambdas?

Oh, and, as John said, the mangling of a block pointer should resemble that of a function pointer (i.e. no '$$A6').
> 
> Can you please review the patch?
Seems to me that the '$$A' part is specific to template parameters that are neither pointers nor references to functions. What happens in those cases? The '6' is probably because this is a global (near) function. What happens when the NTTP is a member function? (Can you even do that?)

Chip





More information about the cfe-commits mailing list