diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index ccae79636f3232..8fd0e2892b148b 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -15543,7 +15543,6 @@ bool Sema::DiagnoseAssignmentResult(AssignConvertType ConvTy, bool CheckInferredResultType = false; bool isInvalid = false; unsigned DiagKind = 0; - FixItHint Hint; ConversionFixItGenerator ConvHints; bool MayHaveConvFixit = false; bool MayHaveFunctionDiff = false; @@ -15596,10 +15595,9 @@ bool Sema::DiagnoseAssignmentResult(AssignConvertType ConvTy, } CheckInferredResultType = DstType->isObjCObjectPointerType() && SrcType->isObjCObjectPointerType(); - if (Hint.isNull() && !CheckInferredResultType) { + if (!CheckInferredResultType) { ConvHints.tryToFixConversion(SrcExpr, SrcType, DstType, *this); - } - else if (CheckInferredResultType) { + } else if (CheckInferredResultType) { SrcType = SrcType.getUnqualifiedType(); DstType = DstType.getUnqualifiedType(); } @@ -15768,13 +15766,11 @@ bool Sema::DiagnoseAssignmentResult(AssignConvertType ConvTy, FDiag << FirstType << SecondType << Action << SrcExpr->getSourceRange(); // If we can fix the conversion, suggest the FixIts. - assert(ConvHints.isNull() || Hint.isNull()); if (!ConvHints.isNull()) { for (FixItHint &H : ConvHints.Hints) FDiag << H; - } else { - FDiag << Hint; } + if (MayHaveConvFixit) { FDiag << (unsigned) (ConvHints.Kind); } if (MayHaveFunctionDiff)