Skip to content

Commit 1794e47

Browse files
Merge pull request #1876 from jkorous-apple/format-insufficient-args
Wformat-insufficient-args
2 parents c8e3b61 + b3b219d commit 1794e47

File tree

4 files changed

+16
-2
lines changed

4 files changed

+16
-2
lines changed

clang/include/clang/Basic/DiagnosticGroups.td

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ def ExtraSemi : DiagGroup<"extra-semi", [CXX98CompatExtraSemi,
234234
def GNUFlexibleArrayInitializer : DiagGroup<"gnu-flexible-array-initializer">;
235235
def GNUFlexibleArrayUnionMember : DiagGroup<"gnu-flexible-array-union-member">;
236236
def GNUFoldingConstant : DiagGroup<"gnu-folding-constant">;
237+
def FormatInsufficientArgs : DiagGroup<"format-insufficient-args">;
237238
def FormatExtraArgs : DiagGroup<"format-extra-args">;
238239
def FormatZeroLength : DiagGroup<"format-zero-length">;
239240

@@ -840,7 +841,8 @@ def FormatPedantic : DiagGroup<"format-pedantic">;
840841
def FormatTypeConfusion : DiagGroup<"format-type-confusion">;
841842
def Format : DiagGroup<"format",
842843
[FormatExtraArgs, FormatZeroLength, NonNull,
843-
FormatSecurity, FormatY2K, FormatInvalidSpecifier]>,
844+
FormatSecurity, FormatY2K, FormatInvalidSpecifier,
845+
FormatInsufficientArgs]>,
844846
DiagCategory<"Format String Issue">;
845847
def FormatNonLiteral : DiagGroup<"format-nonliteral">;
846848
def Format2 : DiagGroup<"format=2",

clang/include/clang/Basic/DiagnosticSemaKinds.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8945,7 +8945,7 @@ def note_array_declared_here : Note<
89458945
"array %0 declared here">;
89468946

89478947
def warn_printf_insufficient_data_args : Warning<
8948-
"more '%%' conversions than data arguments">, InGroup<Format>;
8948+
"more '%%' conversions than data arguments">, InGroup<FormatInsufficientArgs>;
89498949
def warn_printf_data_arg_not_used : Warning<
89508950
"data argument not used by format string">, InGroup<FormatExtraArgs>;
89518951
def warn_format_invalid_conversion : Warning<

clang/test/Misc/warning-wall.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ CHECK-NEXT: -Wnonnull
1515
CHECK-NEXT: -Wformat-security
1616
CHECK-NEXT: -Wformat-y2k
1717
CHECK-NEXT: -Wformat-invalid-specifier
18+
CHECK-NEXT: -Wformat-insufficient-args
1819
CHECK-NEXT: -Wfor-loop-analysis
1920
CHECK-NEXT: -Wframe-address
2021
CHECK-NEXT: -Wimplicit
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// RUN: %clang_cc1 -fsyntax-only -verify=WARNING-ON %s
2+
// RUN: %clang_cc1 -fsyntax-only -Wno-format-insufficient-args -verify=WARNING-OFF %s
3+
4+
5+
int printf(const char * format, ...);
6+
7+
int main(void) {
8+
int patatino = 42;
9+
printf("%i %i", patatino); // WARNING-ON-warning {{more '%' conversions than data arguments}}
10+
// WARNING-OFF-no-diagnostics
11+
}

0 commit comments

Comments
 (0)