Carving out -Wformat warning about scoped enums into a subwarning (#88595)
Make it part of -Wformat-pedantic. Fixes #81647
This commit is contained in:
parent
7c20576cc3
commit
73ed2153be
@ -251,6 +251,8 @@ Modified Compiler Flags
|
||||
f3 *c = (f3 *)x;
|
||||
}
|
||||
|
||||
- Carved out ``-Wformat`` warning about scoped enums into a subwarning and
|
||||
make it controlled by ``-Wformat-pedantic``. Fixes #GH88595.
|
||||
|
||||
Removed Compiler Flags
|
||||
-------------------------
|
||||
|
@ -12779,10 +12779,15 @@ CheckPrintfHandler::checkFormatExpr(const analyze_printf::PrintfSpecifier &FS,
|
||||
// In this case, the expression could be printed using a different
|
||||
// specifier, but we've decided that the specifier is probably correct
|
||||
// and we should cast instead. Just use the normal warning message.
|
||||
|
||||
unsigned Diag =
|
||||
IsScopedEnum
|
||||
? diag::warn_format_conversion_argument_type_mismatch_pedantic
|
||||
: diag::warn_format_conversion_argument_type_mismatch;
|
||||
|
||||
EmitFormatDiagnostic(
|
||||
S.PDiag(diag::warn_format_conversion_argument_type_mismatch)
|
||||
<< AT.getRepresentativeTypeName(S.Context) << ExprTy << IsEnum
|
||||
<< E->getSourceRange(),
|
||||
S.PDiag(Diag) << AT.getRepresentativeTypeName(S.Context) << ExprTy
|
||||
<< IsEnum << E->getSourceRange(),
|
||||
E->getBeginLoc(), /*IsStringLocation*/ false, SpecRange, Hints);
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: %clang_cc1 -triple x86_64-apple-darwin -fsyntax-only -verify -Wformat %s
|
||||
// RUN: %clang_cc1 -triple x86_64-apple-darwin -fsyntax-only -fdiagnostics-parseable-fixits -Wformat %s 2>&1 | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple x86_64-apple-darwin -fsyntax-only -verify -Wformat-pedantic %s
|
||||
// RUN: %clang_cc1 -triple x86_64-apple-darwin -fsyntax-only -fdiagnostics-parseable-fixits -Wformat-pedantic %s 2>&1 | FileCheck %s
|
||||
|
||||
extern "C" int printf(const char * restrict, ...);
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
// RUN: %clang_cc1 -fsyntax-only -verify -Wformat %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -fdiagnostics-parseable-fixits -Wformat %s 2>&1 | FileCheck %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -verify -Wformat-pedantic %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -fdiagnostics-parseable-fixits -Wformat-pedantic %s 2>&1 | FileCheck %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -fdiagnostics-parseable-fixits -Wformat %s -verify=okay
|
||||
// okay-no-diagnostics
|
||||
|
||||
extern "C" int printf(const char *, ...);
|
||||
#define LOG(...) printf(__VA_ARGS__)
|
||||
|
@ -1,6 +1,6 @@
|
||||
// RUN: %clang_cc1 -fsyntax-only -verify -Wformat-nonliteral -Wformat-non-iso -fblocks %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -verify -Wformat-nonliteral -Wformat-non-iso -Wformat-pedantic -fblocks %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -verify -Wformat-nonliteral -Wformat-non-iso -fblocks -std=c++98 %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -verify -Wformat-nonliteral -Wformat-non-iso -fblocks -std=c++11 %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -verify -Wformat-nonliteral -Wformat-non-iso -Wformat-pedantic -fblocks -std=c++11 %s
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user