[clang] Add cc1 option -fctor-dtor-return-this
authorShu-Chun Weng <scw@google.com>
Thu, 29 Sep 2022 00:12:16 +0000 (17:12 -0700)
committerShu-Chun Weng <scw@google.com>
Mon, 3 Oct 2022 21:28:06 +0000 (14:28 -0700)
commit3933c43d9008bb1b151156da92827a109e7963b6
treea4e7bf55f00946e33dc897f36a438ae99b926315
parent4247cdb568eca4c31b14d91105fe5ee140225036
[clang] Add cc1 option -fctor-dtor-return-this

This option forces constructors and non-deleting destructors to return
`this` pointer in C++ ABI (except for Microsoft ABI, on which this flag
has no effect).

This is similar to ARM32, Apple ARM64, or Fuchsia C++ ABI, but can be
applied to any target triple.

Differential Revision: https://reviews.llvm.org/D119209
clang/include/clang/Basic/CodeGenOptions.def
clang/include/clang/Driver/Options.td
clang/lib/CodeGen/CGCXXABI.h
clang/lib/CodeGen/ItaniumCXXABI.cpp
clang/test/CodeGenCXX/constructor-destructor-return-this.cpp