[PATCH] [ms-cxxabi] Destroy temporary record arguments in the callee

Reid Kleckner rnk at google.com
Thu Jun 6 09:32:34 PDT 2013


Hi rjmccall,

Itanium destroys them in the caller at the end of the full expression,
but MSVC destroys them in the callee.

This should help clang compile MSVC's debug iterators more correctly.
There is still an outstanding issue of a memcpy emitted by the LLVM
backend, which is not correct for C++ records.

Helps fix PR16226.

http://llvm-reviews.chandlerc.com/D929

Files:
  include/clang/Basic/TargetCXXABI.h
  lib/CodeGen/CGCall.cpp
  lib/CodeGen/CGDecl.cpp
  lib/CodeGen/CGExpr.cpp
  lib/CodeGen/CodeGenFunction.h
  lib/CodeGen/MicrosoftCXXABI.cpp
  test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D929.1.patch
Type: text/x-patch
Size: 13474 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130606/b296e552/attachment.bin>


More information about the cfe-commits mailing list