[all-commits] [llvm/llvm-project] e9bf0a: [CodeGen] Store the return value of the target fun...

Akira Hatanaka via All-commits all-commits at lists.llvm.org
Fri Jul 10 17:24:45 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e9bf0a710c993b932fa69c95ef6d0130fd721115
      https://github.com/llvm/llvm-project/commit/e9bf0a710c993b932fa69c95ef6d0130fd721115
  Author: Akira Hatanaka <ahatanaka at apple.com>
  Date:   2020-07-10 (Fri, 10 Jul 2020)

  Changed paths:
    M clang/lib/CodeGen/CGCXXABI.cpp
    M clang/lib/CodeGen/CGVTables.cpp
    M clang/test/CodeGenCXX/trivial_abi.cpp
    M clang/test/CodeGenObjCXX/objc-struct-cxx-abi.mm

  Log Message:
  -----------
  [CodeGen] Store the return value of the target function call to the
thunk's return value slot directly when the return type is an aggregate
instead of doing so via a temporary

This fixes PR45997 (https://bugs.llvm.org/show_bug.cgi?id=45997), which
is caused by a bug that has existed since we started passing and
returning C++ structs with ObjC strong pointer members (see
https://reviews.llvm.org/D44908) or structs annotated with trivial_abi
directly.

rdar://problem/63740936

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




More information about the All-commits mailing list