summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-01-27 23:23:39 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-01-27 23:23:39 +0000
commit1bbaba874633ed28644b2d6784c91d73874ece8b (patch)
tree1d4b985f4cda8f2aa783c38d687d0b347f99fdb0 /clang/lib/Sema
parent605f2df106ad30f0127848630b69a0fb6375e8e7 (diff)
downloadbcm5719-llvm-1bbaba874633ed28644b2d6784c91d73874ece8b.tar.gz
bcm5719-llvm-1bbaba874633ed28644b2d6784c91d73874ece8b.zip
Cleanups, and add some FIXMEs. No functional change.
llvm-svn: 227267
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r--clang/lib/Sema/SemaOverload.cpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp
index 28f1231bd57..d364f8d1154 100644
--- a/clang/lib/Sema/SemaOverload.cpp
+++ b/clang/lib/Sema/SemaOverload.cpp
@@ -1134,16 +1134,14 @@ TryUserDefinedConversion(Sema &S, Expr *From, QualType ToType,
break;
case OR_Ambiguous:
- if (!SuppressUserConversions) {
- ICS.setAmbiguous();
- ICS.Ambiguous.setFromType(From->getType());
- ICS.Ambiguous.setToType(ToType);
- for (OverloadCandidateSet::iterator Cand = Conversions.begin();
- Cand != Conversions.end(); ++Cand)
- if (Cand->Viable)
- ICS.Ambiguous.addConversion(Cand->Function);
- break;
- }
+ ICS.setAmbiguous();
+ ICS.Ambiguous.setFromType(From->getType());
+ ICS.Ambiguous.setToType(ToType);
+ for (OverloadCandidateSet::iterator Cand = Conversions.begin();
+ Cand != Conversions.end(); ++Cand)
+ if (Cand->Viable)
+ ICS.Ambiguous.addConversion(Cand->Function);
+ break;
// Fall through.
case OR_No_Viable_Function:
@@ -4479,7 +4477,9 @@ TryListConversion(Sema &S, InitListExpr *From, QualType ToType,
InOverloadResolution,
AllowObjCWritebackConversion);
}
- if (S.Context.getAsArrayType(ToType)) {
+ // FIXME: Check the other conditions here: array of character type,
+ // initializer is a string literal.
+ if (ToType->isArrayType()) {
InitializedEntity Entity =
InitializedEntity::InitializeParameter(S.Context, ToType,
/*Consumed=*/false);
@@ -4506,6 +4506,8 @@ TryListConversion(Sema &S, InitListExpr *From, QualType ToType,
// default-constructible, and if all the elements of the initializer list
// can be implicitly converted to X, the implicit conversion sequence is
// the worst conversion necessary to convert an element of the list to X.
+ //
+ // FIXME: We're missing a lot of these checks.
bool toStdInitializerList = false;
QualType X;
if (ToType->isArrayType())
@@ -4664,7 +4666,7 @@ TryListConversion(Sema &S, InitListExpr *From, QualType ToType,
// initializer list, the implicit conversion sequence is the one
// required to convert the element to the parameter type.
unsigned NumInits = From->getNumInits();
- if (NumInits == 1 && !dyn_cast<InitListExpr>(From->getInit(0)))
+ if (NumInits == 1 && !isa<InitListExpr>(From->getInit(0)))
Result = TryCopyInitialization(S, From->getInit(0), ToType,
SuppressUserConversions,
InOverloadResolution,
OpenPOWER on IntegriCloud