15294c792c715b8dba26711be482b7a32be04d4d5Hans Wennborg// RUN: %clang_cc1 -fsyntax-only -verify -pedantic -std=c++11 %s 25294c792c715b8dba26711be482b7a32be04d4d5Hans Wennborg 35294c792c715b8dba26711be482b7a32be04d4d5Hans Wennborgextern "C" { 45294c792c715b8dba26711be482b7a32be04d4d5Hans Wennborgextern int scanf(const char *restrict, ...); 55294c792c715b8dba26711be482b7a32be04d4d5Hans Wennborgextern int printf(const char *restrict, ...); 65294c792c715b8dba26711be482b7a32be04d4d5Hans Wennborg} 75294c792c715b8dba26711be482b7a32be04d4d5Hans Wennborg 85294c792c715b8dba26711be482b7a32be04d4d5Hans Wennborgvoid f(char **sp, float *fp) { 9ce506ae231703a23ea95335cd4de19c60082f361Ted Kremenek scanf("%as", sp); // expected-warning{{format specifies type 'float *' but the argument has type 'char **'}} 105294c792c715b8dba26711be482b7a32be04d4d5Hans Wennborg 115294c792c715b8dba26711be482b7a32be04d4d5Hans Wennborg printf("%a", 1.0); 125294c792c715b8dba26711be482b7a32be04d4d5Hans Wennborg scanf("%afoobar", fp); 13a73cdcbc1dc1ed98c54556c6adcd2b12301759ccDavid Blaikie printf(nullptr); 14a73cdcbc1dc1ed98c54556c6adcd2b12301759ccDavid Blaikie printf(*sp); // expected-warning {{not a string literal}} 15df9ef1bc8c3780307ab2ed81bf5e31c23310b936Richard Smith 16df9ef1bc8c3780307ab2ed81bf5e31c23310b936Richard Smith // PR13099 17df9ef1bc8c3780307ab2ed81bf5e31c23310b936Richard Smith printf( 18df9ef1bc8c3780307ab2ed81bf5e31c23310b936Richard Smith R"foobar(%)foobar" 19df9ef1bc8c3780307ab2ed81bf5e31c23310b936Richard Smith R"bazquux(d)bazquux" // expected-warning {{more '%' conversions than data arguments}} 20df9ef1bc8c3780307ab2ed81bf5e31c23310b936Richard Smith R"xyzzy()xyzzy"); 21df9ef1bc8c3780307ab2ed81bf5e31c23310b936Richard Smith 22df9ef1bc8c3780307ab2ed81bf5e31c23310b936Richard Smith printf(u8"this is %d test", 0); // ok 23df9ef1bc8c3780307ab2ed81bf5e31c23310b936Richard Smith printf(u8R"foo( 24df9ef1bc8c3780307ab2ed81bf5e31c23310b936Richard Smith \u1234\U0010fffe 25df9ef1bc8c3780307ab2ed81bf5e31c23310b936Richard Smith %d)foo" // expected-warning {{more '%' conversions than data arguments}} 26df9ef1bc8c3780307ab2ed81bf5e31c23310b936Richard Smith ); 275294c792c715b8dba26711be482b7a32be04d4d5Hans Wennborg} 28