diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-04-01 18:32:35 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-04-01 18:32:35 +0000 |
| commit | b242683d9992841b0b9dea840da6293f1e0d0c67 (patch) | |
| tree | 42d197e17e8fa66c3f1700c42ab650af1f341f63 /clang/lib/Sema/SemaOverload.cpp | |
| parent | e43887bd2baf7332af2e99461bf9cfb60341ae0f (diff) | |
| download | bcm5719-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.cpp | 2 |
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) { |

