aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-05-08 18:20:53 +0000
committerDouglas Gregor <dgregor@apple.com>2010-05-08 18:20:53 +0000
commit0ca4c58cba09ea4cb45348ea223227234a363e94 (patch)
tree2ade828225648f2c8cb198a1adcb36a0c0bce0be
parenta18592ec62e898aed7ed71e1f09c314590ce9ec7 (diff)
Minor cleanup, and ban copying of OverloadCandidateSets. No
functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103342 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Sema/SemaOverload.cpp27
-rw-r--r--lib/Sema/SemaOverload.h4
2 files changed, 17 insertions, 14 deletions
diff --git a/lib/Sema/SemaOverload.cpp b/lib/Sema/SemaOverload.cpp
index 93e9c7f4e7..6f7063b98f 100644
--- a/lib/Sema/SemaOverload.cpp
+++ b/lib/Sema/SemaOverload.cpp
@@ -296,13 +296,14 @@ static MakeDeductionFailureInfo(Sema::TemplateDeductionResult TDK,
switch (TDK) {
case Sema::TDK_Success:
case Sema::TDK_InstantiationDepth:
+ case Sema::TDK_TooManyArguments:
+ case Sema::TDK_TooFewArguments:
break;
case Sema::TDK_Incomplete:
Result.Data = Info.Param.getOpaqueValue();
break;
- // Unhandled
case Sema::TDK_Inconsistent:
case Sema::TDK_InconsistentQuals: {
DFIParamWithArguments *Saved = new DFIParamWithArguments;
@@ -315,8 +316,6 @@ static MakeDeductionFailureInfo(Sema::TemplateDeductionResult TDK,
case Sema::TDK_SubstitutionFailure:
case Sema::TDK_NonDeducedMismatch:
- case Sema::TDK_TooManyArguments:
- case Sema::TDK_TooFewArguments:
case Sema::TDK_InvalidExplicitArguments:
case Sema::TDK_FailedOverloadResolution:
break;
@@ -330,19 +329,19 @@ void OverloadCandidate::DeductionFailureInfo::Destroy() {
case Sema::TDK_Success:
case Sema::TDK_InstantiationDepth:
case Sema::TDK_Incomplete:
+ case Sema::TDK_TooManyArguments:
+ case Sema::TDK_TooFewArguments:
break;
- // Unhandled
case Sema::TDK_Inconsistent:
case Sema::TDK_InconsistentQuals:
delete static_cast<DFIParamWithArguments*>(Data);
Data = 0;
break;
+ // Unhandled
case Sema::TDK_SubstitutionFailure:
case Sema::TDK_NonDeducedMismatch:
- case Sema::TDK_TooManyArguments:
- case Sema::TDK_TooFewArguments:
case Sema::TDK_InvalidExplicitArguments:
case Sema::TDK_FailedOverloadResolution:
break;
@@ -354,6 +353,8 @@ OverloadCandidate::DeductionFailureInfo::getTemplateParameter() {
switch (static_cast<Sema::TemplateDeductionResult>(Result)) {
case Sema::TDK_Success:
case Sema::TDK_InstantiationDepth:
+ case Sema::TDK_TooManyArguments:
+ case Sema::TDK_TooFewArguments:
return TemplateParameter();
case Sema::TDK_Incomplete:
@@ -366,8 +367,6 @@ OverloadCandidate::DeductionFailureInfo::getTemplateParameter() {
// Unhandled
case Sema::TDK_SubstitutionFailure:
case Sema::TDK_NonDeducedMismatch:
- case Sema::TDK_TooManyArguments:
- case Sema::TDK_TooFewArguments:
case Sema::TDK_InvalidExplicitArguments:
case Sema::TDK_FailedOverloadResolution:
break;
@@ -381,17 +380,17 @@ const TemplateArgument *OverloadCandidate::DeductionFailureInfo::getFirstArg() {
case Sema::TDK_Success:
case Sema::TDK_InstantiationDepth:
case Sema::TDK_Incomplete:
+ case Sema::TDK_TooManyArguments:
+ case Sema::TDK_TooFewArguments:
return 0;
- // Unhandled
case Sema::TDK_Inconsistent:
case Sema::TDK_InconsistentQuals:
return &static_cast<DFIParamWithArguments*>(Data)->FirstArg;
+ // Unhandled
case Sema::TDK_SubstitutionFailure:
case Sema::TDK_NonDeducedMismatch:
- case Sema::TDK_TooManyArguments:
- case Sema::TDK_TooFewArguments:
case Sema::TDK_InvalidExplicitArguments:
case Sema::TDK_FailedOverloadResolution:
break;
@@ -406,17 +405,17 @@ OverloadCandidate::DeductionFailureInfo::getSecondArg() {
case Sema::TDK_Success:
case Sema::TDK_InstantiationDepth:
case Sema::TDK_Incomplete:
+ case Sema::TDK_TooManyArguments:
+ case Sema::TDK_TooFewArguments:
return 0;
- // Unhandled
case Sema::TDK_Inconsistent:
case Sema::TDK_InconsistentQuals:
return &static_cast<DFIParamWithArguments*>(Data)->SecondArg;
+ // Unhandled
case Sema::TDK_SubstitutionFailure:
case Sema::TDK_NonDeducedMismatch:
- case Sema::TDK_TooManyArguments:
- case Sema::TDK_TooFewArguments:
case Sema::TDK_InvalidExplicitArguments:
case Sema::TDK_FailedOverloadResolution:
break;
diff --git a/lib/Sema/SemaOverload.h b/lib/Sema/SemaOverload.h
index b7b628886c..c13fb17b85 100644
--- a/lib/Sema/SemaOverload.h
+++ b/lib/Sema/SemaOverload.h
@@ -580,6 +580,10 @@ namespace clang {
llvm::SmallPtrSet<Decl *, 16> Functions;
SourceLocation Loc;
+
+ OverloadCandidateSet(const OverloadCandidateSet &);
+ OverloadCandidateSet &operator=(const OverloadCandidateSet &);
+
public:
OverloadCandidateSet(SourceLocation Loc) : Loc(Loc) {}