Address comments from Doug.

llvm-svn: 73077
This commit is contained in:
Anders Carlsson 2009-06-08 19:22:23 +00:00
parent b035445537
commit 096e6eeb68
2 changed files with 12 additions and 3 deletions

View File

@ -276,7 +276,17 @@ static bool DeduceTemplateArguments(ASTContext &Context, QualType Param,
const FunctionProtoType *FunctionProtoParam =
cast<FunctionProtoType>(Param);
if (FunctionProtoParam->getTypeQuals() !=
FunctionProtoArg->getTypeQuals())
return false;
if (FunctionProtoParam->getNumArgs() != FunctionProtoArg->getNumArgs())
return false;
if (FunctionProtoParam->isVariadic() != FunctionProtoArg->isVariadic())
return false;
// Check return types.
if (!DeduceTemplateArguments(Context,
FunctionProtoParam->getResultType(),
@ -284,9 +294,6 @@ static bool DeduceTemplateArguments(ASTContext &Context, QualType Param,
Deduced))
return false;
if (FunctionProtoParam->getNumArgs() != FunctionProtoArg->getNumArgs())
return false;
for (unsigned I = 0, N = FunctionProtoParam->getNumArgs(); I != N; ++I) {
// Check argument types.
if (!DeduceTemplateArguments(Context,

View File

@ -134,6 +134,8 @@ int is_unary_function6[is_unary_function_with_same_return_type_as_argument_type<
int is_unary_function7[is_unary_function_with_same_return_type_as_argument_type<int (*)(int, bool)>::value ? -1 : 1];
int is_unary_function8[is_unary_function_with_same_return_type_as_argument_type<int (*)(bool)>::value ? -1 : 1];
int is_unary_function9[is_unary_function_with_same_return_type_as_argument_type<int (*)(int)>::value ? 1 : -1];
int is_unary_function10[is_unary_function_with_same_return_type_as_argument_type<int (*)(int, ...)>::value ? -1 : 1];
int is_unary_function11[is_unary_function_with_same_return_type_as_argument_type<int (* const)(int)>::value ? -1 : 1];
template<typename T>
struct is_binary_function {