def warn_selfcomparison : Warning<
"self-comparison always results in a constant value">;
def warn_stringcompare : Warning<
- "result of comparison against a string literal is unspecified "
- "(use strcmp?)">;
+ "result of comparison against %select{a string literal|@encode}0 is "
+ "unspecified (use strcmp instead)">;
// operand is null), the user probably wants strcmp.
if ((isa<StringLiteral>(LHSStripped) || isa<ObjCEncodeExpr>(LHSStripped)) &&
!RHSStripped->isNullPointerConstant(Context))
- Diag(Loc, diag::warn_stringcompare)
+ Diag(Loc, diag::warn_stringcompare)
+ << isa<ObjCEncodeExpr>(LHSStripped)
<< lex->getSourceRange()
<< CodeModificationHint::CreateReplacement(SourceRange(Loc), ", ")
<< CodeModificationHint::CreateInsertion(lex->getLocStart(),
isa<ObjCEncodeExpr>(RHSStripped)) &&
!LHSStripped->isNullPointerConstant(Context))
Diag(Loc, diag::warn_stringcompare)
+ << isa<ObjCEncodeExpr>(RHSStripped)
<< rex->getSourceRange()
<< CodeModificationHint::CreateReplacement(SourceRange(Loc), ", ")
<< CodeModificationHint::CreateInsertion(lex->getLocStart(),