]> granicus.if.org Git - clang/commitdiff
[C++11] Work around an incompatibility between llvm::tie and std::tie.
authorBenjamin Kramer <benny.kra@googlemail.com>
Sun, 2 Mar 2014 13:18:22 +0000 (13:18 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Sun, 2 Mar 2014 13:18:22 +0000 (13:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202643 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/Type.h
lib/Sema/SemaExpr.cpp

index a53937781a18c734b6dfce3d44db348a2b08b77a..7205a5de7a96e6125be1a4f6e4a10677731a8a16 100644 (file)
@@ -506,8 +506,8 @@ struct SplitQualType {
   SplitQualType getSingleStepDesugaredType() const; // end of this file
 
   // Make std::tie work.
-  operator std::pair<const Type *,Qualifiers>() const {
-    return std::pair<const Type *,Qualifiers>(Ty, Quals);
+  std::pair<const Type *,Qualifiers> asPair() const {
+    return std::pair<const Type *, Qualifiers>(Ty, Quals);
   }
 
   friend bool operator==(SplitQualType a, SplitQualType b) {
index 97101f464ba78930776097078e23a8ac8e90051b..eedfdc4b21c0e640b52b2e2b41bb2b549de2c81b 100644 (file)
@@ -6004,8 +6004,10 @@ checkPointerTypesForAssignment(Sema &S, QualType LHSType, QualType RHSType) {
   // get the "pointed to" type (ignoring qualifiers at the top level)
   const Type *lhptee, *rhptee;
   Qualifiers lhq, rhq;
-  std::tie(lhptee, lhq) = cast<PointerType>(LHSType)->getPointeeType().split();
-  std::tie(rhptee, rhq) = cast<PointerType>(RHSType)->getPointeeType().split();
+  std::tie(lhptee, lhq) =
+      cast<PointerType>(LHSType)->getPointeeType().split().asPair();
+  std::tie(rhptee, rhq) =
+      cast<PointerType>(RHSType)->getPointeeType().split().asPair();
 
   Sema::AssignConvertType ConvTy = Sema::Compatible;