summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaOverload.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-04-01 18:32:35 +0000
committerDouglas Gregor <dgregor@apple.com>2010-04-01 18:32:35 +0000
commitb242683d9992841b0b9dea840da6293f1e0d0c67 (patch)
tree42d197e17e8fa66c3f1700c42ab650af1f341f63 /clang/lib/Sema/SemaOverload.cpp
parente43887bd2baf7332af2e99461bf9cfb60341ae0f (diff)
downloadbcm5719-llvm-b242683d9992841b0b9dea840da6293f1e0d0c67.tar.gz
bcm5719-llvm-b242683d9992841b0b9dea840da6293f1e0d0c67.zip
Overhaul checking of non-type template arguments that should refer to
an object or function. Our previous checking was too lax, and ended up allowing missing or extraneous address-of operators, among other evils. The new checking provides better diagnostics and adheres more closely to the standard. Fixes PR6563 and PR6749. llvm-svn: 100125
Diffstat (limited to 'clang/lib/Sema/SemaOverload.cpp')
-rw-r--r--clang/lib/Sema/SemaOverload.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp
index be367c3660e..bc10a58d6b2 100644
--- a/clang/lib/Sema/SemaOverload.cpp
+++ b/clang/lib/Sema/SemaOverload.cpp
@@ -4991,6 +4991,8 @@ Sema::ResolveAddressOfOverloadedFunction(Expr *From, QualType ToType,
// Look through all of the overloaded functions, searching for one
// whose type matches exactly.
llvm::SmallVector<std::pair<DeclAccessPair, FunctionDecl*>, 4> Matches;
+ llvm::SmallVector<FunctionDecl *, 4> NonMatches;
+
bool FoundNonTemplateFunction = false;
for (UnresolvedSetIterator I = OvlExpr->decls_begin(),
E = OvlExpr->decls_end(); I != E; ++I) {
OpenPOWER on IntegriCloud