diff options
| author | Anders Carlsson <andersca@mac.com> | 2009-08-27 16:01:18 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2009-08-27 16:01:18 +0000 |
| commit | 2f7e956f16df2651a042040f4078002aa513a42e (patch) | |
| tree | 9f94e9d84e04079f5c64ffaae683e9baf9ec0885 /clang/lib/Sema/SemaExprCXX.cpp | |
| parent | 7b8f61f3c80236c2ba089035f56be61de8a730c8 (diff) | |
| download | bcm5719-llvm-2f7e956f16df2651a042040f4078002aa513a42e.tar.gz bcm5719-llvm-2f7e956f16df2651a042040f4078002aa513a42e.zip | |
Add a OverloadResolutionFlags and start converting some of the overload methods over to using it instead of bools arguments.
llvm-svn: 80248
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index 85924948da7..1d05008cbe9 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -881,14 +881,19 @@ Sema::PerformImplicitConversion(Expr *&From, QualType ToType, const char *Flavor, bool AllowExplicit, bool Elidable) { + unsigned Flags = ORF_None; + if (AllowExplicit) + Flags |= ORF_AllowExplicit; + ImplicitConversionSequence ICS; ICS.ConversionKind = ImplicitConversionSequence::BadConversion; if (Elidable && getLangOptions().CPlusPlus0x) { - ICS = TryImplicitConversion(From, ToType, /*SuppressUserConversions*/false, - AllowExplicit, /*ForceRValue*/true); + Flags |= ORF_ForceRValue; + + ICS = TryImplicitConversion(From, ToType, Flags); } if (ICS.ConversionKind == ImplicitConversionSequence::BadConversion) { - ICS = TryImplicitConversion(From, ToType, false, AllowExplicit); + ICS = TryImplicitConversion(From, ToType, Flags); } return PerformImplicitConversion(From, ToType, ICS, Flavor); } |

