From: Daniel Dunbar Date: Thu, 5 Feb 2009 09:24:53 +0000 (+0000) Subject: Simplify test for whether we need an alloca to hold an indirect return X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2969a0243b0939286a45d0ba58dd3e1de226ac60;p=clang Simplify test for whether we need an alloca to hold an indirect return value. - No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63859 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGCall.cpp b/lib/CodeGen/CGCall.cpp index 703bcd0d85..af3ea74d23 100644 --- a/lib/CodeGen/CGCall.cpp +++ b/lib/CodeGen/CGCall.cpp @@ -1337,19 +1337,9 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo, // location that we would like to return into. QualType RetTy = CallInfo.getReturnType(); const ABIArgInfo &RetAI = CallInfo.getReturnInfo(); - switch (RetAI.getKind()) { - case ABIArgInfo::Indirect: + if (CGM.ReturnTypeUsesSret(CallInfo)) { // Create a temporary alloca to hold the result of the call. :( Args.push_back(CreateTempAlloca(ConvertType(RetTy))); - break; - - case ABIArgInfo::Direct: - case ABIArgInfo::Ignore: - case ABIArgInfo::Coerce: - break; - - case ABIArgInfo::Expand: - assert(0 && "Invalid ABI kind for return argument"); } assert(CallInfo.arg_size() == CallArgs.size() &&