Use the correct field to copy/dispose a __block variable.
authorJohn McCall <rjmccall@apple.com>
Tue, 22 Jan 2013 03:56:22 +0000 (03:56 +0000)
committerJohn McCall <rjmccall@apple.com>
Tue, 22 Jan 2013 03:56:22 +0000 (03:56 +0000)
commitf593b10d04d215370d2d4bdbb400c902a34a1483
treee6acf6a2bf0315cc4b2ee35ba385d45c9e8c7dd1
parentc6d09603ad57f090541dcf1e89b130858770335a
Use the correct field to copy/dispose a __block variable.

We were previously hard-coding a particular field index.  This was
fine before (because we were obviously guaranteed the presence
of a copy/dispose member) except for (1) alignment padding and
(2) future extensions adding extra members to the header, such
as the extended-layout pointer.

Note that we only introduce the extended-layout pointer in the
presence of structs.  (We also seem to be introducing it even
in the presence of an all-non-object layout, but that's a
different potential issue.)

llvm-svn: 173122
clang/lib/CodeGen/CGBlocks.cpp
clang/test/CodeGenObjCXX/arc-blocks.mm [new file with mode: 0644]