summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaTemplateDeduction.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-06-08 19:22:23 +0000
committerAnders Carlsson <andersca@mac.com>2009-06-08 19:22:23 +0000
commit096e6eeb6800163edaefd15cd2763d29f9c14c2e (patch)
tree53a4a84b697d59faebdceb762f8144672b83cf63 /clang/lib/Sema/SemaTemplateDeduction.cpp
parentb035445537d357a8a94e249c40dadb4db17fa39d (diff)
downloadbcm5719-llvm-096e6eeb6800163edaefd15cd2763d29f9c14c2e.tar.gz
bcm5719-llvm-096e6eeb6800163edaefd15cd2763d29f9c14c2e.zip
Address comments from Doug.
llvm-svn: 73077
Diffstat (limited to 'clang/lib/Sema/SemaTemplateDeduction.cpp')
-rw-r--r--clang/lib/Sema/SemaTemplateDeduction.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaTemplateDeduction.cpp b/clang/lib/Sema/SemaTemplateDeduction.cpp
index fe779ebd80d..1789ba78568 100644
--- a/clang/lib/Sema/SemaTemplateDeduction.cpp
+++ b/clang/lib/Sema/SemaTemplateDeduction.cpp
@@ -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,
OpenPOWER on IntegriCloud