brintos

brintos / llvm-project-archived public Read only

0
0
Text · 855 B · e041c5a Raw
31 lines · c
1// RUN: %clang_cc1 -fsyntax-only -verify %s2 3int printf(const char *, ...);4 5const char* f(const char *s) __attribute__((format_arg(1)));6 7const char *h(const char *msg1, const char *msg2)8    __attribute__((__format_arg__(1))) __attribute__((__format_arg__(2)));9 10void g(const char *s) {11  printf("%d", 123);12  printf("%d %d", 123); // expected-warning{{more '%' conversions than data arguments}}13 14  printf(f("%d"), 123);15  printf(f("%d %d"), 123); // expected-warning{{more '%' conversions than data arguments}}16 17  printf(h(18    "", // expected-warning {{format string is empty}}19    ""  // expected-warning {{format string is empty}}20  ), 123);21  printf(h(22    "%d",23    ""  // expected-warning {{format string is empty}}24  ), 123);25  printf(h(26    "", // expected-warning {{format string is empty}}27    "%d"28  ), 123);29  printf(h("%d", "%d"), 123);30}31