[cfe-commits] r94894 - in /cfe/trunk: include/clang/Analysis/Analyses/PrintfFormatString.h lib/Analysis/PrintfFormatString.cpp test/Sema/format-strings.c

Daniel Dunbar daniel at zuster.org
Sat Jan 30 07:49:20 PST 2010


Author: ddunbar
Date: Sat Jan 30 09:49:20 2010
New Revision: 94894

URL: http://llvm.org/viewvc/llvm-project?rev=94894&view=rev
Log:
Recognize 'q' as a format length modifier (from BSD).

Modified:
    cfe/trunk/include/clang/Analysis/Analyses/PrintfFormatString.h
    cfe/trunk/lib/Analysis/PrintfFormatString.cpp
    cfe/trunk/test/Sema/format-strings.c

Modified: cfe/trunk/include/clang/Analysis/Analyses/PrintfFormatString.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/Analyses/PrintfFormatString.h?rev=94894&r1=94893&r2=94894&view=diff

==============================================================================
--- cfe/trunk/include/clang/Analysis/Analyses/PrintfFormatString.h (original)
+++ cfe/trunk/include/clang/Analysis/Analyses/PrintfFormatString.h Sat Jan 30 09:49:20 2010
@@ -105,7 +105,7 @@
  AsChar,      // 'hh'
  AsShort,     // 'h'
  AsLong,      // 'l'
- AsLongLong,  // 'll'
+ AsLongLong,  // 'll', 'q' (BSD, deprecated)
  AsIntMax,    // 'j'
  AsSizeT,     // 'z'
  AsPtrDiff,   // 't'

Modified: cfe/trunk/lib/Analysis/PrintfFormatString.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/PrintfFormatString.cpp?rev=94894&r1=94893&r2=94894&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/PrintfFormatString.cpp (original)
+++ cfe/trunk/lib/Analysis/PrintfFormatString.cpp Sat Jan 30 09:49:20 2010
@@ -185,6 +185,7 @@
     case 'z': lm = AsSizeT;      ++I; break;
     case 't': lm = AsPtrDiff;    ++I; break;
     case 'L': lm = AsLongDouble; ++I; break;
+    case 'q': lm = AsLongLong;   ++I; break;
   }
   FS.setLengthModifier(lm);
   

Modified: cfe/trunk/test/Sema/format-strings.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/format-strings.c?rev=94894&r1=94893&r2=94894&view=diff

==============================================================================
--- cfe/trunk/test/Sema/format-strings.c (original)
+++ cfe/trunk/test/Sema/format-strings.c Sat Jan 30 09:49:20 2010
@@ -144,7 +144,7 @@
   
 }
 
-void test10(int x, float f, int i) {
+void test10(int x, float f, int i, long long lli) {
   printf("%@", 12); // expected-warning{{invalid conversion specifier '@'}}
   printf("\0"); // expected-warning{{format string contains '\0' within the string body}}
   printf("xs\0"); // expected-warning{{format string contains '\0' within the string body}}
@@ -161,6 +161,7 @@
   printf("%.d", x); // no-warning
   printf("%.", x);  // expected-warning{{incomplete format specifier}}
   printf("%f", 4); // expected-warning{{conversion specifies type 'double' but the argument has type 'int'}}
+  printf("%qd", lli);
 } 
 
 typedef struct __aslclient *aslclient;





More information about the cfe-commits mailing list