[PATCH] D92808: [ObjC][ARC] Annotate calls with attributes instead of emitting retainRV or claimRV calls in the IR

Akira Hatanaka via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 9 16:05:47 PST 2020


ahatanak added a comment.

ToT clang/llvm (without this patch) is turning the call to `@objc_unsafeClaimAutoreleasedReturnValue` in the EH cleanup block into an unreachable when compiling the following code. It looks like this happens because the inliner isn't adding the funclet token, but it's not clear to me whether this is a bug or not.

$ cat test.mm

  void foo();
  id noexcept_func() noexcept;
  
  struct S0 {
    id x;
    ~S0() {
      noexcept_func();
    }
  };
  
  void test_attr_claimRV() {
    S0 s0;
    foo();
  }

$ clang++ -std=c++11 -fobjc-arc  test.mm -O3 -S -o - "-fobjc-runtime=ios-11.0.0" -target aarch64-unknown-windows-msvc


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92808/new/

https://reviews.llvm.org/D92808



More information about the llvm-commits mailing list