diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-04-16 17:16:43 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-04-16 17:16:43 +0000 |
| commit | f149520464423e0f96d6d3bdd1796e6dbe6249e8 (patch) | |
| tree | a23f489a8b5dbbdf6c1a9cdf2f99263980b3123c | |
| parent | 3a7ee8eead8ac7640f3ffd805c78bd275799de28 (diff) | |
| download | bcm5719-llvm-f149520464423e0f96d6d3bdd1796e6dbe6249e8.tar.gz bcm5719-llvm-f149520464423e0f96d6d3bdd1796e6dbe6249e8.zip | |
Eliminate the Elidable parameter to PerformImplicitConversion; we
don't need it.
llvm-svn: 101481
| -rw-r--r-- | clang/lib/Sema/Sema.h | 4 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 31 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaInit.cpp | 2 |
3 files changed, 10 insertions, 27 deletions
diff --git a/clang/lib/Sema/Sema.h b/clang/lib/Sema/Sema.h index 1be5f7af888..9c090398778 100644 --- a/clang/lib/Sema/Sema.h +++ b/clang/lib/Sema/Sema.h @@ -4109,12 +4109,10 @@ public: bool PerformImplicitConversion(Expr *&From, QualType ToType, AssignmentAction Action, - bool AllowExplicit = false, - bool Elidable = false); + bool AllowExplicit = false); bool PerformImplicitConversion(Expr *&From, QualType ToType, AssignmentAction Action, bool AllowExplicit, - bool Elidable, ImplicitConversionSequence& ICS); bool PerformImplicitConversion(Expr *&From, QualType ToType, const ImplicitConversionSequence& ICS, diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index be3ef83d994..33cc63eb616 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -1479,38 +1479,23 @@ Sema::IsStringLiteralToNonConstPointerConversion(Expr *From, QualType ToType) { /// error, false otherwise. The expression From is replaced with the /// converted expression. Flavor is the kind of conversion we're /// performing, used in the error message. If @p AllowExplicit, -/// explicit user-defined conversions are permitted. @p Elidable should be true -/// when called for copies which may be elided (C++ 12.8p15). C++0x overload -/// resolution works differently in that case. +/// explicit user-defined conversions are permitted. bool Sema::PerformImplicitConversion(Expr *&From, QualType ToType, - AssignmentAction Action, bool AllowExplicit, - bool Elidable) { + AssignmentAction Action, bool AllowExplicit) { ImplicitConversionSequence ICS; - return PerformImplicitConversion(From, ToType, Action, AllowExplicit, - Elidable, ICS); + return PerformImplicitConversion(From, ToType, Action, AllowExplicit, ICS); } bool Sema::PerformImplicitConversion(Expr *&From, QualType ToType, AssignmentAction Action, bool AllowExplicit, - bool Elidable, ImplicitConversionSequence& ICS) { - ICS.setBad(BadConversionSequence::no_conversion, From, ToType); - if (Elidable && getLangOptions().CPlusPlus0x) { - ICS = TryImplicitConversion(From, ToType, - /*SuppressUserConversions=*/false, - AllowExplicit, - /*ForceRValue=*/true, - /*InOverloadResolution=*/false); - } - if (ICS.isBad()) { - ICS = TryImplicitConversion(From, ToType, - /*SuppressUserConversions=*/false, - AllowExplicit, - /*ForceRValue=*/false, - /*InOverloadResolution=*/false); - } + ICS = TryImplicitConversion(From, ToType, + /*SuppressUserConversions=*/false, + AllowExplicit, + /*ForceRValue=*/false, + /*InOverloadResolution=*/false); return PerformImplicitConversion(From, ToType, ICS, Action); } diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp index dae3d3ae7e6..1293e8d6c5e 100644 --- a/clang/lib/Sema/SemaInit.cpp +++ b/clang/lib/Sema/SemaInit.cpp @@ -3494,7 +3494,7 @@ InitializationSequence::Perform(Sema &S, case SK_ConversionSequence: if (S.PerformImplicitConversion(CurInitExpr, Step->Type, Sema::AA_Converting, - false, false, *Step->ICS)) + false, *Step->ICS)) return S.ExprError(); CurInit.release(); |

