]> granicus.if.org Git - clang/commit
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)
commitb62faef5ec86c1931785ffa805ece9b491735894
tree997ca498944f0ebbbff626dab34293cbda8577c1
parent614323cc1cd3af406ed697bed7324f76f871419e
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.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173122 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGBlocks.cpp
test/CodeGenObjCXX/arc-blocks.mm [new file with mode: 0644]