diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index e703a62ff9cf1..ce846ae88c38b 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -6591,27 +6591,33 @@ void CheckFormatHandler::HandleNonStandardConversionSpecifier( void CheckFormatHandler::HandlePosition(const char *startPos, unsigned posLen) { - EmitFormatDiagnostic(S.PDiag(diag::warn_format_non_standard_positional_arg), - getLocationOfByte(startPos), - /*IsStringLocation*/true, - getSpecifierRange(startPos, posLen)); + if (!S.getDiagnostics().isIgnored( + diag::warn_format_non_standard_positional_arg, SourceLocation())) + EmitFormatDiagnostic(S.PDiag(diag::warn_format_non_standard_positional_arg), + getLocationOfByte(startPos), + /*IsStringLocation*/ true, + getSpecifierRange(startPos, posLen)); } void CheckFormatHandler::HandleInvalidPosition( const char *startSpecifier, unsigned specifierLen, analyze_format_string::PositionContext p) { - EmitFormatDiagnostic( - S.PDiag(diag::warn_format_invalid_positional_specifier) << (unsigned)p, - getLocationOfByte(startSpecifier), /*IsStringLocation*/ true, - getSpecifierRange(startSpecifier, specifierLen)); + if (!S.getDiagnostics().isIgnored( + diag::warn_format_invalid_positional_specifier, SourceLocation())) + EmitFormatDiagnostic( + S.PDiag(diag::warn_format_invalid_positional_specifier) << (unsigned)p, + getLocationOfByte(startSpecifier), /*IsStringLocation*/ true, + getSpecifierRange(startSpecifier, specifierLen)); } void CheckFormatHandler::HandleZeroPosition(const char *startPos, unsigned posLen) { - EmitFormatDiagnostic(S.PDiag(diag::warn_format_zero_positional_specifier), - getLocationOfByte(startPos), - /*IsStringLocation*/true, - getSpecifierRange(startPos, posLen)); + if (!S.getDiagnostics().isIgnored(diag::warn_format_zero_positional_specifier, + SourceLocation())) + EmitFormatDiagnostic(S.PDiag(diag::warn_format_zero_positional_specifier), + getLocationOfByte(startPos), + /*IsStringLocation*/ true, + getSpecifierRange(startPos, posLen)); } void CheckFormatHandler::HandleNullChar(const char *nullCharacter) {