diff options
author | Dmitry Polukhin <dmitry.polukhin@gmail.com> | 2016-07-19 11:29:16 +0000 |
---|---|---|
committer | Dmitry Polukhin <dmitry.polukhin@gmail.com> | 2016-07-19 11:29:16 +0000 |
commit | ba57f027207763e6eb767949fb2ba8855098e42f (patch) | |
tree | 4b687be44d47504819d164c454325d8c6ab85a3c /clang/lib/Sema/SemaOverload.cpp | |
parent | 22117a8913debfc2d12671031b537753e7c9bb78 (diff) | |
download | bcm5719-llvm-ba57f027207763e6eb767949fb2ba8855098e42f.tar.gz bcm5719-llvm-ba57f027207763e6eb767949fb2ba8855098e42f.zip |
Deprecated (legacy) string literal conversion to 'char *' causes strange overloading resolution
It's a patch for PR28050. Seems like overloading resolution wipes out
the first standard conversion sequence (before user-defined conversion)
in case of deprecated string literal conversion.
Differential revision: https://reviews.llvm.org/D21228
Patch by Alexander Makarov
llvm-svn: 275970
Diffstat (limited to 'clang/lib/Sema/SemaOverload.cpp')
-rw-r--r-- | clang/lib/Sema/SemaOverload.cpp | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp index b025a397edc..dfb4cceddfd 100644 --- a/clang/lib/Sema/SemaOverload.cpp +++ b/clang/lib/Sema/SemaOverload.cpp @@ -1199,7 +1199,6 @@ TryUserDefinedConversion(Sema &S, Expr *From, QualType ToType, case OR_Success: case OR_Deleted: ICS.setUserDefined(); - ICS.UserDefined.Before.setAsIdentityConversion(); // C++ [over.ics.user]p4: // A conversion of an expression of class type to the same class // type is given Exact Match rank, and a conversion of an @@ -4540,7 +4539,6 @@ TryReferenceInit(Sema &S, Expr *Init, QualType DeclType, return ICS; } - ICS.UserDefined.Before.setAsIdentityConversion(); ICS.UserDefined.After.ReferenceBinding = true; ICS.UserDefined.After.IsLvalueReference = !isRValRef; ICS.UserDefined.After.BindsToFunctionLvalue = false; |