From e31772fc44f41400e2106f31c9128657c30f0699 Mon Sep 17 00:00:00 2001 From: Bob Wilson Date: Thu, 3 May 2012 23:38:51 +0000 Subject: [PATCH] Add a test for r156092. llvm-svn: 156132 --- clang/test/Sema/Inputs/format-unused-system-args.h | 8 ++++++++ clang/test/Sema/format-strings.c | 9 ++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 clang/test/Sema/Inputs/format-unused-system-args.h diff --git a/clang/test/Sema/Inputs/format-unused-system-args.h b/clang/test/Sema/Inputs/format-unused-system-args.h new file mode 100644 index 000000000000..3a6b1654fbd6 --- /dev/null +++ b/clang/test/Sema/Inputs/format-unused-system-args.h @@ -0,0 +1,8 @@ +// "System header" for testing that -Wformat-extra-args does not apply to +// arguments specified in system headers. + +#define PRINT2(fmt, a1, a2) \ + printf((fmt), (a1), (a2)) + +#define PRINT1(fmt, a1) \ + PRINT2((fmt), (a1), 0) diff --git a/clang/test/Sema/format-strings.c b/clang/test/Sema/format-strings.c index 086c5c6d6fe8..7e968899ac23 100644 --- a/clang/test/Sema/format-strings.c +++ b/clang/test/Sema/format-strings.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fsyntax-only -verify -Wformat-nonliteral %s +// RUN: %clang_cc1 -fsyntax-only -verify -Wformat-nonliteral -isystem %S/Inputs %s #include typedef __typeof(sizeof(int)) size_t; @@ -521,3 +521,10 @@ void test_other_formats() { dateformat(""); // expected-warning{{format string is empty}} dateformat(str); // no-warning (using strftime non literal is not unsafe) } + +// Do not warn about unused arguments coming from system headers. +// +#include +void test_unused_system_args(int x) { + PRINT1("%d\n", x); // no-warning{{extra argument is system header is OK}} +}