Fix for clang memcpyizer bugs 23911 and 23924 (patch by Denis Zobnin)
authorAlexey Bataev <a.bataev@hotmail.com>
Tue, 14 Jul 2015 07:55:48 +0000 (07:55 +0000)
committerAlexey Bataev <a.bataev@hotmail.com>
Tue, 14 Jul 2015 07:55:48 +0000 (07:55 +0000)
commit152c71f3af7156175eeef156f61e26aa5ca2d297
tree46a6e7f52798511c97db48d33c3b2f9c9f9160f5
parent62690b195209faa25cf2f98ccb0669bc821b0cfe
Fix for clang memcpyizer bugs 23911 and 23924 (patch by Denis Zobnin)

The fix is to remove duplicate copy-initialization of the only memcpy-able struct member and to correct the address of aggregately initialized members in destructors' calls during stack unwinding (in order to obtain address of struct member by using GEP instead of 'bitcast').
Differential Revision: http://reviews.llvm.org/D10990

llvm-svn: 242127
clang/lib/CodeGen/CGClass.cpp
clang/test/CodeGenCXX/eh-aggregated-inits-unwind.cpp [new file with mode: 0644]
clang/test/CodeGenCXX/eh-aggregated-inits.cpp [new file with mode: 0644]