Fix uninitialized read of CalleeWithThisReturn.

CalleeWithThisReturn can be left initialized if HasThisReturn() is false.
This change reverses the order of checks in EmitFunctionEpilog such that
CalleeWithThisReturn is only examined when it has a meaningful value.

Found with MemorySanitizer.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178015 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGCall.cpp b/lib/CodeGen/CGCall.cpp
index faf32e3..1fb88b0 100644
--- a/lib/CodeGen/CGCall.cpp
+++ b/lib/CodeGen/CGCall.cpp
@@ -1722,7 +1722,7 @@
   // the same object as CXXThisValue, use the return value from the CallInst.
   // We will not need to keep 'this' alive through the callsite. It also enables
   // optimizations in the backend, such as tail call optimization.
-  if (CalleeWithThisReturn && CGM.getCXXABI().HasThisReturn(CurGD)) {
+  if (CGM.getCXXABI().HasThisReturn(CurGD) && CalleeWithThisReturn) {
     llvm::BasicBlock *IP = Builder.GetInsertBlock();
     llvm::CallInst *Callsite;
     if (!IP->empty() && (Callsite = dyn_cast<llvm::CallInst>(&IP->back())) &&