// RUN: %clang_cc1 -fsyntax-only -verify -pedantic -std=c++11 %s

extern "C" {
extern int scanf(const char *restrict, ...);
extern int printf(const char *restrict, ...);
}

void f(char **sp, float *fp) {
  scanf("%as", sp); // expected-warning{{format specifies type 'float *' but the argument has type 'char **'}}

  printf("%p", sp); // expected-warning{{format specifies type 'void *' but the argument has type 'char **'}}
  scanf("%p", sp);  // expected-warning{{format specifies type 'void **' but the argument has type 'char **'}}

  printf("%a", 1.0);
  scanf("%afoobar", fp);
  printf(nullptr);
  printf(*sp); // expected-warning {{not a string literal}}

  // PR13099
  printf(
    R"foobar(%)foobar"
    R"bazquux(d)bazquux" // expected-warning {{more '%' conversions than data arguments}}
    R"xyzzy()xyzzy");

  printf(u8"this is %d test", 0); // ok
  printf(u8R"foo(
      \u1234\U0010fffe
      %d)foo" // expected-warning {{more '%' conversions than data arguments}}
  );

  printf("init list: %d", { 0 }); // expected-error {{cannot pass initializer list to variadic function; expected type from format string was 'int'}}
  printf("void: %d", f(sp, fp)); // expected-error {{cannot pass expression of type 'void' to variadic function; expected type from format string was 'int'}}
  printf(0, { 0 }); // expected-error {{cannot pass initializer list to variadic function}}
}
