diff options
author | Hans Wennborg <hans@hanshq.net> | 2011-10-18 08:10:06 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2011-10-18 08:10:06 +0000 |
commit | f99d04f841bc2fddd009b6481f43c266cabf4300 (patch) | |
tree | c043ee09ca376782e8982967dbeba0d3605c8ad8 /clang/test/Sema/format-strings-fixit.c | |
parent | 2b7a1ff77fc36f79cd7b40944a4267ee83934a7e (diff) | |
download | bcm5719-llvm-f99d04f841bc2fddd009b6481f43c266cabf4300.tar.gz bcm5719-llvm-f99d04f841bc2fddd009b6481f43c266cabf4300.zip |
Suggest %zu for size_t args to printf.
For PR11152. Make PrintSpecifier::fixType() suggest "%zu" for size_t, etc.
rather than looking at the underlying type and suggesting "%llu" or other
platform-specific length modifiers. Applies to C99 and C++11.
llvm-svn: 142342
Diffstat (limited to 'clang/test/Sema/format-strings-fixit.c')
-rw-r--r-- | clang/test/Sema/format-strings-fixit.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/Sema/format-strings-fixit.c b/clang/test/Sema/format-strings-fixit.c index d03cccb601f..5b2f54a59fa 100644 --- a/clang/test/Sema/format-strings-fixit.c +++ b/clang/test/Sema/format-strings-fixit.c @@ -46,6 +46,19 @@ void test() { // Perserve the original formatting for unsigned integers. unsigned long val = 42; printf("%X", val); + + typedef __SIZE_TYPE__ size_t; + typedef signed long int ssize_t; + typedef __INTMAX_TYPE__ intmax_t; + typedef __UINTMAX_TYPE__ uintmax_t; + typedef __PTRDIFF_TYPE__ ptrdiff_t; + + // size_t, etc. + printf("%c", (size_t) 42); + printf("%c", (ssize_t) 42); + printf("%c", (intmax_t) 42); + printf("%c", (uintmax_t) 42); + printf("%c", (ptrdiff_t) 42); } // Validate the fixes... @@ -68,3 +81,8 @@ void test() { // CHECK: printf("%s", "foo"); // CHECK: printf("%1$p", (void *)0); // CHECK: printf("%lX", val); +// CHECK: printf("%zu", (size_t) 42); +// CHECK: printf("%zd", (ssize_t) 42); +// CHECK: printf("%jd", (intmax_t) 42); +// CHECK: printf("%ju", (uintmax_t) 42); +// CHECK: printf("%td", (ptrdiff_t) 42); |