diff options
Diffstat (limited to 'clang/test/Sema/format-strings.c')
-rw-r--r-- | clang/test/Sema/format-strings.c | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/clang/test/Sema/format-strings.c b/clang/test/Sema/format-strings.c index a6b3a699364..5559710c603 100644 --- a/clang/test/Sema/format-strings.c +++ b/clang/test/Sema/format-strings.c @@ -652,38 +652,3 @@ void test_format_security_pos(char* string) { // expected-note@-1{{treat the string as an argument to avoid this}} } #pragma GCC diagnostic warning "-Wformat-nonliteral" - -void test_char_pointer_arithmetic(int b) { - const char s1[] = "string"; - const char s2[] = "%s string"; - - printf(s1 - 1); // expected-warning {{format string is not a string literal (potentially insecure)}} - // expected-note@-1{{treat the string as an argument to avoid this}} - - printf(s1 + 2); // no-warning - printf(s2 + 2); // no-warning - - const char s3[] = "%s string"; - printf((s3 + 2) - 2); // expected-warning{{more '%' conversions than data arguments}} - // expected-note@-2{{format string is defined here}} - printf(2 + s2); // no-warning - printf(6 + s2 - 2); // no-warning - printf(2 + (b ? s1 : s2)); // no-warning - - const char s5[] = "string %s"; - printf(2 + (b ? s2 : s5)); // expected-warning{{more '%' conversions than data arguments}} - // expected-note@-2{{format string is defined here}} - printf(2 + (b ? s2 : s5), ""); // no-warning - printf(2 + (b ? s1 : s2 - 2), ""); // no-warning - - const char s6[] = "%s string"; - printf(2 + (b ? s1 : s6 - 2)); // expected-warning{{more '%' conversions than data arguments}} - // expected-note@-2{{format string is defined here}} - printf(1 ? s2 + 2 : s2); // no-warning - printf(0 ? s2 : s2 + 2); // no-warning - printf(2 + s2 + 5 * 3 - 16, ""); // expected-warning{{data argument not used}} - - const char s7[] = "%s string %s %s"; - printf(s7 + 3, ""); // expected-warning{{more '%' conversions than data arguments}} - // expected-note@-2{{format string is defined here}} -} |