changeset 119:d9df2cbd60cd

check callee is __code when genrating lifetime end before cbc goto.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 14 Sep 2016 00:12:37 +0900
parents cc378dc45926
children 36195a0db682
files tools/clang/lib/CodeGen/CGCall.cpp
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/tools/clang/lib/CodeGen/CGCall.cpp	Thu Aug 25 19:09:12 2016 +0900
+++ b/tools/clang/lib/CodeGen/CGCall.cpp	Wed Sep 14 00:12:37 2016 +0900
@@ -3460,7 +3460,7 @@
     IRCallArgs[IRFunctionArgs.getInallocaArgNo()] = Arg;
   }
 #ifndef noCbC
-  if (this->FnRetTy.getTypePtr()->is__CodeType() && ! EHStack.empty() ) {
+  if (this->FnRetTy.getTypePtr()->is__CodeType() && CallInfo.getReturnType().getTypePtr()->is__CodeType() && ! EHStack.empty() ) {
     EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.begin());
     auto *CleanupSource = reinterpret_cast<char *>(Scope.getCleanupBuffer());
     llvm::AlignedCharArray<EHScopeStack::ScopeStackAlignment, 8 * sizeof(void *)> CleanupBufferStack;