summaryrefslogtreecommitdiffstats
path: root/clang/test/Sema/format-strings-fixit.c
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2011-10-18 08:10:06 +0000
committerHans Wennborg <hans@hanshq.net>2011-10-18 08:10:06 +0000
commitf99d04f841bc2fddd009b6481f43c266cabf4300 (patch)
treec043ee09ca376782e8982967dbeba0d3605c8ad8 /clang/test/Sema/format-strings-fixit.c
parent2b7a1ff77fc36f79cd7b40944a4267ee83934a7e (diff)
downloadbcm5719-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.c18
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);
OpenPOWER on IntegriCloud