From 333e8be5e82aeef179771ca33e936c1236f0dcc2 Mon Sep 17 00:00:00 2001 From: Duncan Sands Date: Mon, 21 Jan 2008 11:28:49 +0000 Subject: [PATCH] Check that sret is only used on pointers to types with a size, like byval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46207 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/ParameterAttributes.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/VMCore/ParameterAttributes.cpp b/lib/VMCore/ParameterAttributes.cpp index 4b63cfb2da7..0cafd307b2f 100644 --- a/lib/VMCore/ParameterAttributes.cpp +++ b/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;