Implement ranking of standard conversion sequences by their qualification
conversions (e.g., comparing int* -> const int* against
int* -> const volatile int*); see C++ 13.3.3.2p3 bullet 3.
Add Sema::UnwrapSimilarPointerTypes to simplify the control flow of
IsQualificationConversion and CompareQualificationConversion (and fix
the handling of the int* -> volatile int* conversion in the former).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57978 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index 2508d1a..b176bc9 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -262,7 +262,8 @@
QualType ObjCGetTypeForMethodDefinition(DeclTy *D);
-
+ bool UnwrapSimilarPointerTypes(QualType& T1, QualType& T2);
+
virtual TypeResult ActOnTypeName(Scope *S, Declarator &D);
private:
//===--------------------------------------------------------------------===//
@@ -380,6 +381,10 @@
CompareStandardConversionSequences(const StandardConversionSequence& SCS1,
const StandardConversionSequence& SCS2);
+ ImplicitConversionSequence::CompareKind
+ CompareQualificationConversions(const StandardConversionSequence& SCS1,
+ const StandardConversionSequence& SCS2);
+
/// OverloadingResult - Capture the result of performing overload
/// resolution.
enum OverloadingResult {