147ad6ce1afad6b70927347dfa15e0f1dc76bf5bbDavid Majnemer// RUN: %clang_cc1 -fsyntax-only -verify -fms-compatibility -triple=i386-pc-win32 -pedantic %s 247ad6ce1afad6b70927347dfa15e0f1dc76bf5bbDavid Majnemer 347ad6ce1afad6b70927347dfa15e0f1dc76bf5bbDavid Majnemerint printf(const char *format, ...) __attribute__((format(printf, 1, 2))); 447ad6ce1afad6b70927347dfa15e0f1dc76bf5bbDavid Majnemer 56a5526046b945032c69c9ead1cd341226cdf1c16David Majnemervoid signed_test() { 647ad6ce1afad6b70927347dfa15e0f1dc76bf5bbDavid Majnemer short val = 30; 747ad6ce1afad6b70927347dfa15e0f1dc76bf5bbDavid Majnemer printf("val = %I64d\n", val); // expected-warning{{'I64' length modifier is not supported by ISO C}} \ 847ad6ce1afad6b70927347dfa15e0f1dc76bf5bbDavid Majnemer // expected-warning{{format specifies type '__int64' (aka 'long long') but the argument has type 'short'}} 9df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer long long bigval = 30; 10df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer printf("val = %I32d\n", bigval); // expected-warning{{'I32' length modifier is not supported by ISO C}} \ 11df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer // expected-warning{{format specifies type '__int32' (aka 'int') but the argument has type 'long long'}} 12df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer printf("val = %Id\n", bigval); // expected-warning{{'I' length modifier is not supported by ISO C}} \ 13df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer // expected-warning{{format specifies type '__int32' (aka 'int') but the argument has type 'long long'}} 14df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer} 15df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer 166a5526046b945032c69c9ead1cd341226cdf1c16David Majnemervoid unsigned_test() { 17df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer unsigned short val = 30; 18df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer printf("val = %I64u\n", val); // expected-warning{{'I64' length modifier is not supported by ISO C}} \ 19df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer // expected-warning{{format specifies type 'unsigned __int64' (aka 'unsigned long long') but the argument has type 'unsigned short'}} 20df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer unsigned long long bigval = 30; 21df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer printf("val = %I32u\n", bigval); // expected-warning{{'I32' length modifier is not supported by ISO C}} \ 22df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer // expected-warning{{format specifies type 'unsigned __int32' (aka 'unsigned int') but the argument has type 'unsigned long long'}} 23df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer printf("val = %Iu\n", bigval); // expected-warning{{'I' length modifier is not supported by ISO C}} \ 24df72071db0ddfd7264485105c19230c315e8ce2cDavid Majnemer // expected-warning{{format specifies type 'unsigned __int32' (aka 'unsigned int') but the argument has type 'unsigned long long'}} 2547ad6ce1afad6b70927347dfa15e0f1dc76bf5bbDavid Majnemer} 26