> Test cases are required for this sort of thing.  Also, you're not
  > checking whether it has the __ptr64 attribute before performing the
  > mangle, are you sure that's what you want?  Is there a __ptr32 mangle
  > we should be emitting if the pointer width is 32?


  Idk, I just compared mangled names from VC and Clang.

  Compile x86 code:
  $ bin\cl.exe /nologo /c ms-ptr64.cpp&&  strings -n 6 ms-ptr64.obj | grep VS
  mangle-ms-ptr64.cpp
  ??0?$VS@$$$V@@QAE@XZ
  ??0?$VS@H@@QAE@H@Z
  ??0?$VS@HN@@QAE@HN@Z

  Compile x64 code:
  $ bin\amd64\cl.exe /nologo /c ms-ptr64.cpp&&  strings -n 6 ms-ptr64.obj
  | grep VS
  mangle-ms-ptr64.cpp
  ??0?$VS@$$$V@@QEAA@XZ
  ??0?$VS@H@@QEAA@H@Z
  ??0?$VS@HN@@QEAA@HN@Z

  Undecorate x86 signature:
  $ undname.exe ??0?$VS@H@@QAE@H@Z
  Undecoration of :- "??0?$VS@H@@QAE@H@Z"
  is :- "public: __thiscall VS<int>::VS<int>(int)"

  Undecorate x64 signature:
  $ undname.exe ??0?$VS@H@@QEAA@H@Z
  Undecoration of :- "??0?$VS@H@@QEAA@H@Z"
  is :- "public: __cdecl VS<int>::VS<int>(int) __ptr64"

  Intel C++ with /Qms does same (QAE on ia32 and QEAA on intel64). Clang
  was produced just "QAA" (__cdecl) on x64.

http://llvm-reviews.chandlerc.com/D101
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to