Tweak printf format string parsing to accept 'hh' conversion specifier to accept any char, not just signed char.  Fixes <rdar://problem/10303638>.

llvm-svn: 142908
diff --git a/clang/test/Sema/format-strings.c b/clang/test/Sema/format-strings.c
index 6b5f7e2..4f2ad99 100644
--- a/clang/test/Sema/format-strings.c
+++ b/clang/test/Sema/format-strings.c
@@ -212,6 +212,12 @@
   asprintf(&b, "%d", "asprintf"); // expected-warning{{conversion specifies type 'int' but the argument has type 'char *'}}
 }
 
+void test13(short x) {
+  char bel = 007;
+  printf("bel: '0%hhd'\n", bel); // no-warning
+  printf("x: '0%hhd'\n", x); // expected-warning {{conversion specifies type 'char' but the argument has type 'short'}}
+}
+
 typedef struct __aslclient *aslclient;
 typedef struct __aslmsg *aslmsg;
 int asl_log(aslclient asl, aslmsg msg, int level, const char *format, ...) __attribute__((__format__ (__printf__, 4, 5)));