reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/Sema/SemaExpr.cpp
10659   if (!IsThreeWay || IsAnyPointerType(LHS) || IsAnyPointerType(RHS)) {
10660     LHS = DefaultFunctionArrayLvalueConversion(LHS.get());
10660     LHS = DefaultFunctionArrayLvalueConversion(LHS.get());
10661     if (LHS.isInvalid())
10667     LHS = DefaultLvalueConversion(LHS.get());
10667     LHS = DefaultLvalueConversion(LHS.get());
10668     if (LHS.isInvalid())
10675   checkArithmeticNull(*this, LHS, RHS, Loc, /*IsCompare=*/true);
10677     CheckPtrComparisonWithNullChar(LHS, RHS);
10678     CheckPtrComparisonWithNullChar(RHS, LHS);
10682   if (LHS.get()->getType()->isVectorType() ||
10684     return CheckVectorCompareOperands(LHS, RHS, Loc, Opc);
10686   diagnoseLogicalNotOnLHSofCheck(*this, LHS, RHS, Loc, Opc);
10687   diagnoseTautologicalComparison(*this, Loc, LHS.get(), RHS.get(), Opc);
10689   QualType LHSType = LHS.get()->getType();
10693     return checkArithmeticOrEnumeralCompare(*this, LHS, RHS, Loc, Opc);
10696       LHS.get()->isNullPointerConstant(Context, Expr::NPC_ValueDependentIsNull);
10706     assert(Context.hasSameType(LHS.get()->getType(), RHS.get()->getType()));
10708     QualType CompositeTy = LHS.get()->getType();
10736     return InvalidOperands(Loc, LHS, RHS);
10743       DiagnoseAlwaysNonNullPointer(LHS.get(), RHSNullKind, IsEquality,
10747                                    LHS.get()->getSourceRange());
10766           *this, Loc, LHS, RHS, /*isError*/ (bool)isSFINAEContext());
10788       if (convertPointersToCompositeType(*this, Loc, LHS, RHS))
10807           << LHSType << RHSType << LHS.get()->getSourceRange()
10815         diagnoseFunctionPointerToVoidComparison(*this, Loc, LHS, RHS,
10819       diagnoseDistinctPointerComparison(*this, Loc, LHS, RHS, /*isError*/false);
10829               << LHS.get()->getSourceRange() << RHS.get()->getSourceRange();
10837         LHS = ImpCastExprToType(LHS.get(), RHSType, Kind);
10837         LHS = ImpCastExprToType(LHS.get(), RHSType, Kind);
10854         LHS = ImpCastExprToType(LHS.get(), RHSType, CK_NullToPointer);
10854         LHS = ImpCastExprToType(LHS.get(), RHSType, CK_NullToPointer);
10868       LHS = ImpCastExprToType(LHS.get(), RHSType, CK_NullToPointer);
10868       LHS = ImpCastExprToType(LHS.get(), RHSType, CK_NullToPointer);
10891             LHS = ImpCastExprToType(LHS.get(), RHSType, CK_NullToPointer);
10891             LHS = ImpCastExprToType(LHS.get(), RHSType, CK_NullToPointer);
10902       if (convertPointersToCompositeType(*this, Loc, LHS, RHS))
10918         << LHSType << RHSType << LHS.get()->getSourceRange()
10935           << LHSType << RHSType << LHS.get()->getSourceRange()
10939       LHS = ImpCastExprToType(LHS.get(), RHSType,
10939       LHS = ImpCastExprToType(LHS.get(), RHSType,
10959         diagnoseDistinctPointerComparison(*this, Loc, LHS, RHS,
10963         Expr *E = LHS.get();
10967         LHS = ImpCastExprToType(E, RHSType,
10984         diagnoseDistinctPointerComparison(*this, Loc, LHS, RHS,
10986       if (isObjCObjectLiteral(LHS) || isObjCObjectLiteral(RHS))
10987         diagnoseObjCLiteralComparison(*this, Loc, LHS, RHS, Opc);
10990         LHS = ImpCastExprToType(LHS.get(), RHSType, CK_BitCast);
10990         LHS = ImpCastExprToType(LHS.get(), RHSType, CK_BitCast);
10998       LHS = ImpCastExprToType(LHS.get(), RHSType,
10998       LHS = ImpCastExprToType(LHS.get(), RHSType,
11034         << LHSType << RHSType << LHS.get()->getSourceRange()
11041       LHS = ImpCastExprToType(LHS.get(), RHSType,
11041       LHS = ImpCastExprToType(LHS.get(), RHSType,
11057     LHS = ImpCastExprToType(LHS.get(), RHSType, CK_NullToPointer);
11057     LHS = ImpCastExprToType(LHS.get(), RHSType, CK_NullToPointer);
11071       LHS = ImpCastExprToType(LHS.get(), RHSType, CK_NullToPointer);
11071       LHS = ImpCastExprToType(LHS.get(), RHSType, CK_NullToPointer);
11081   return InvalidOperands(Loc, LHS, RHS);