summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Sema/format-strings-fixit.c1
-rw-r--r--clang/test/Sema/format-strings.c1
-rw-r--r--clang/test/SemaObjC/format-strings-objc.m8
3 files changed, 10 insertions, 0 deletions
diff --git a/clang/test/Sema/format-strings-fixit.c b/clang/test/Sema/format-strings-fixit.c
index 9a1fef0401a..bbdd4d81059 100644
--- a/clang/test/Sema/format-strings-fixit.c
+++ b/clang/test/Sema/format-strings-fixit.c
@@ -14,6 +14,7 @@ void test() {
printf("%s", (int) 123);
printf("abc%0f", "testing testing 123");
printf("%u", (long) -12);
+ printf("%p", 123);
// Larger types
printf("%+.2d", (unsigned long long) 123456);
diff --git a/clang/test/Sema/format-strings.c b/clang/test/Sema/format-strings.c
index d6d37961d92..72aa5927c30 100644
--- a/clang/test/Sema/format-strings.c
+++ b/clang/test/Sema/format-strings.c
@@ -176,6 +176,7 @@ void test10(int x, float f, int i, long long lli) {
void test11(void *p, char *s) {
printf("%p", p); // no-warning
+ printf("%p", 123); // expected-warning{{conversion specifies type 'void *' but the argument has type 'int'}}
printf("%.4p", p); // expected-warning{{precision used in 'p' conversion specifier (where it has no meaning)}}
printf("%+p", p); // expected-warning{{flag '+' results in undefined behavior in 'p' conversion specifier}}
printf("% p", p); // expected-warning{{flag ' ' results in undefined behavior in 'p' conversion specifier}}
diff --git a/clang/test/SemaObjC/format-strings-objc.m b/clang/test/SemaObjC/format-strings-objc.m
index 1fcc34f695d..d89f50afa96 100644
--- a/clang/test/SemaObjC/format-strings-objc.m
+++ b/clang/test/SemaObjC/format-strings-objc.m
@@ -55,3 +55,11 @@ void rdar_7068334() {
void rdar_7697748() {
NSLog(@"%@!"); // expected-warning{{more '%' conversions than data arguments}}
}
+
+@protocol Foo;
+
+void test_p_conversion_with_objc_pointer(id x, id<Foo> y) {
+ printf("%p", x); // no-warning
+ printf("%p", y); // no-warning
+}
+
OpenPOWER on IntegriCloud