]> granicus.if.org Git - clang/commitdiff
The 'X' printf type has a valid alternative form. Fixes PR8641.
authorAnders Carlsson <andersca@mac.com>
Sun, 21 Nov 2010 18:34:21 +0000 (18:34 +0000)
committerAnders Carlsson <andersca@mac.com>
Sun, 21 Nov 2010 18:34:21 +0000 (18:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119946 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/PrintfFormatString.cpp
test/Sema/format-strings.c

index 57399d8efefbbe3b06253f8b3e2c59c0b3ebd0a7..88671017a8418e6a477921aae836423c2f45caca 100644 (file)
@@ -501,10 +501,11 @@ bool PrintfSpecifier::hasValidAlternativeForm() const {
   if (!HasAlternativeForm)
     return true;
 
-  // Alternate form flag only valid with the oxaAeEfFgG conversions
+  // Alternate form flag only valid with the oxXaAeEfFgG conversions
   switch (CS.getKind()) {
   case ConversionSpecifier::oArg:
   case ConversionSpecifier::xArg:
+  case ConversionSpecifier::XArg:
   case ConversionSpecifier::aArg:
   case ConversionSpecifier::AArg:
   case ConversionSpecifier::eArg:
index 57f087b2e0c8cf74c3e8f2e0c5d68c515d958d67..ba5fa8a3a664de16bfec68004506558f74e3c78d 100644 (file)
@@ -325,3 +325,8 @@ void rdar8332221(va_list ap, int *x, long *y) {
   rdar8332221_vprintf_scanf("%", ap, "%d", x); // expected-warning{{incomplete format specifier}}
 }
 
+// PR8641
+void pr8641() {
+  printf("%#x\n", 10);
+  printf("%#X\n", 10);
+}