[cfe-commits] r107264 - in /cfe/trunk: lib/CodeGen/MicrosoftCXXABI.cpp test/CodeGenCXX/mangle-ms.cpp

Sean Hunt rideau3 at gmail.com
Wed Jun 30 20:27:51 PDT 2010


On 06/30/2010 07:20 PM, Charles Davis wrote:
> On 6/30/10 6:04 PM, Sean Hunt wrote:
>> How does MSVC mangle void foo(int*)? Is it actually different from void
>> foo(int * const)?
> The first one is mangled '?foo@@YAXPAH at Z', the second '?foo@@YAXQAH at Z'.
> So yeah, they're different. Microsoft designed the mangling scheme so
> that it is possible to recover the entire C++ declaration (with MS
> extensions, of course) from the mangled name. (IIUC, they did this to
> enforce the ODR.)
>
> Chip

Does the following conforming program fail to link, then?:

// File 1

void foo (int*);

int main() { foo(0); }

// File 2

void foo (int * const) {}

// End of files

Sean



More information about the cfe-commits mailing list