aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/SemaOverload.h
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-02-01 18:53:26 +0000
committerJohn McCall <rjmccall@apple.com>2010-02-01 18:53:26 +0000
commit342fec43c515184a3c0d0600323dfec2b059e74e (patch)
tree59d7eeffe2c93a1ea22208d90c281ff24dc5b450 /lib/Sema/SemaOverload.h
parentd17e340e2d516139931768697bf080f60920ba9d (diff)
Note that an overload candidate was non-viable because template argument
deduction failed. Right now there's a very vague diagnostic for most cases and a good diagnostic for incomplete deduction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94988 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaOverload.h')
-rw-r--r--lib/Sema/SemaOverload.h24
1 files changed, 19 insertions, 5 deletions
diff --git a/lib/Sema/SemaOverload.h b/lib/Sema/SemaOverload.h
index 66ed2259bd..cc26277825 100644
--- a/lib/Sema/SemaOverload.h
+++ b/lib/Sema/SemaOverload.h
@@ -465,11 +465,25 @@ namespace clang {
return AccessSpecifier(Access);
}
- /// FinalConversion - For a conversion function (where Function is
- /// a CXXConversionDecl), the standard conversion that occurs
- /// after the call to the overload candidate to convert the result
- /// of calling the conversion function to the required type.
- StandardConversionSequence FinalConversion;
+ /// A structure used to record information about a failed
+ /// template argument deduction.
+ struct DeductionFailureInfo {
+ // A Sema::TemplateDeductionResult.
+ unsigned Result;
+
+ // A TemplateParameter.
+ void *TemplateParameter;
+ };
+
+ union {
+ DeductionFailureInfo DeductionFailure;
+
+ /// FinalConversion - For a conversion function (where Function is
+ /// a CXXConversionDecl), the standard conversion that occurs
+ /// after the call to the overload candidate to convert the result
+ /// of calling the conversion function to the required type.
+ StandardConversionSequence FinalConversion;
+ };
/// hasAmbiguousConversion - Returns whether this overload
/// candidate requires an ambiguous conversion or not.