diff --git a/llvm/lib/VMCore/ParameterAttributes.cpp b/llvm/lib/VMCore/ParameterAttributes.cpp index 4b63cfb2da7c..0cafd307b2f0 100644 --- a/llvm/lib/VMCore/ParameterAttributes.cpp +++ b/llvm/lib/VMCore/ParameterAttributes.cpp @@ -202,8 +202,8 @@ uint16_t ParamAttr::typeIncompatible (const Type *Ty) { if (const PointerType *PTy = dyn_cast(Ty)) { if (!PTy->getElementType()->isSized()) - // The byval attribute only applies to pointers to types with a size. - Incompatible |= ParamAttr::ByVal; + // The byval and sret attributes only apply to pointers to sized types. + Incompatible |= ByVal | StructRet; } else { // Attributes that only apply to pointers. Incompatible |= ByVal | Nest | NoAlias | StructRet;