diff options
| author | Stephen Lin <stephenwlin@gmail.com> | 2013-06-30 20:40:16 +0000 |
|---|---|---|
| committer | Stephen Lin <stephenwlin@gmail.com> | 2013-06-30 20:40:16 +0000 |
| commit | 9dc6eef755c756db67552eccd5f2e910d8d504b3 (patch) | |
| tree | de664e43946e8c99d3bdf353895f6d47fa69d364 /clang/lib/CodeGen/CGVTables.cpp | |
| parent | 2e551adcd98dc5b9a3e1ceabd07dd7d0be94c4b7 (diff) | |
| download | bcm5719-llvm-9dc6eef755c756db67552eccd5f2e910d8d504b3.tar.gz bcm5719-llvm-9dc6eef755c756db67552eccd5f2e910d8d504b3.zip | |
Restore r184205 and associated commits (after commit of r185290)
This allows clang to use the backend parameter attribute 'returned' when generating 'this'-returning constructors and destructors in ARM and MSVC C++ ABIs.
llvm-svn: 185291
Diffstat (limited to 'clang/lib/CodeGen/CGVTables.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CGVTables.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGVTables.cpp b/clang/lib/CodeGen/CGVTables.cpp index e15639d31dd..9c4a5e0cdad 100644 --- a/clang/lib/CodeGen/CGVTables.cpp +++ b/clang/lib/CodeGen/CGVTables.cpp @@ -287,8 +287,9 @@ void CodeGenFunction::GenerateThunk(llvm::Function *Fn, GlobalDecl GD, const ThunkInfo &Thunk) { const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); const FunctionProtoType *FPT = MD->getType()->getAs<FunctionProtoType>(); - QualType ResultType = FPT->getResultType(); QualType ThisType = MD->getThisType(getContext()); + QualType ResultType = + CGM.getCXXABI().HasThisReturn(GD) ? ThisType : FPT->getResultType(); FunctionArgList FunctionArgs; |

