Moved some complicated checks into convenience functions

This commit is contained in:
Thorbjørn Lindeijer
2009-03-26 16:43:38 +01:00
parent 536320ea1a
commit 5d8ee0d742
3 changed files with 20 additions and 7 deletions

View File

@@ -217,6 +217,12 @@ FullySpecifiedType Function::returnType() const
void Function::setReturnType(FullySpecifiedType returnType)
{ _returnType = returnType; }
bool Function::hasReturnType() const
{
const FullySpecifiedType ty = returnType();
return ty.isValid() || ty.isSigned() || ty.isUnsigned();
}
unsigned Function::argumentCount() const
{
if (! _arguments)
@@ -231,6 +237,12 @@ Symbol *Function::argumentAt(unsigned index) const
Scope *Function::arguments() const
{ return _arguments; }
bool Function::hasArguments() const
{
return ! (argumentCount() == 0 ||
(argumentCount() == 1 && argumentAt(0)->type()->isVoidType()));
}
bool Function::isVariadic() const
{ return _isVariadic; }