]> granicus.if.org Git - clang/commit
[CodeGen] Add funclet token to ARC marker
authorShoaib Meenai <smeenai@fb.com>
Mon, 19 Mar 2018 19:34:39 +0000 (19:34 +0000)
committerShoaib Meenai <smeenai@fb.com>
Mon, 19 Mar 2018 19:34:39 +0000 (19:34 +0000)
commit75ec747077d46ed5c15d28b06981d5291159d7b2
tree1f803c8a7eb39d4abb07c0fe898e3b0b9d660a87
parent0d77b40bff5effdfbb53dc6ab440982b17b5e51a
[CodeGen] Add funclet token to ARC marker

The inline assembly generated for the ARC autorelease elision marker
must have a funclet token if it's emitted inside a funclet, otherwise
the inline assembly (and all subsequent code in the funclet) will be
marked unreachable. r324689 fixed this issue for regular inline assembly
blocks.

Note that clang only emits the marker at -O0, so this only fixes that
case. The optimizations case (where the marker is emitted by the
backend) will be fixed in a separate change.

Differential Revision: https://reviews.llvm.org/D44640

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