LangRef/implementation inconsistency: What is the intended constraint on function return types?

PR15447 <http://llvm.org/bugs/show_bug.cgi?id=15447&gt; brings up that
there is an inconsistency both within LangRef and between LangRef and
the implementation regarding what is an allowed return type.

LangRef says:

"The return type of a function type is a first class type or a void type."
<http://llvm.org/docs/LangRef.html#id14&gt;

and also, contrarily,

"<returntype>‘ is any type except label."
<http://llvm.org/docs/LangRef.html#id15&gt;

On the other hand, the actual implementation of
FunctionType::isValidReturnType opines that:

bool FunctionType::isValidReturnType(Type *RetTy) {
  return !RetTy->isFunctionTy() && !RetTy->isLabelTy() &&
  !RetTy->isMetadataTy();
}

These definitions are mutually incompatible. What is the intended definition?

-- Sean Silva