]> granicus.if.org Git - clang/commitdiff
Allow HandleFormatSpecifier() to indicate that no more processing of the format strin...
authorTed Kremenek <kremenek@apple.com>
Thu, 28 Jan 2010 01:00:59 +0000 (01:00 +0000)
committerTed Kremenek <kremenek@apple.com>
Thu, 28 Jan 2010 01:00:59 +0000 (01:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94715 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Analysis/Analyses/PrintfFormatString.h
lib/Analysis/PrintfFormatString.cpp

index c5bac8c72662997a8120d5093604a5d8b647f8d8..6ae7e0c6e924a13a807ee58648412aa7cf477a15 100644 (file)
@@ -176,9 +176,9 @@ public:
   
   virtual void HandleInvalidConversionSpecifier(const char *conversionChar) {}
   
-  virtual void HandleFormatSpecifier(const FormatSpecifier &FS,
+  virtual bool HandleFormatSpecifier(const FormatSpecifier &FS,
                                      const char *startSpecifier,
-                                     const char *endSpecifier) {}
+                                     const char *endSpecifier) { return false; }
 };
   
 bool ParseFormatString(FormatStringHandler &H,
index 9907dc9d42b4c40fedd4b3b5dbfc516826d6dc88..1afa9ad2b717c69dbf72790143f804bf7e3de577 100644 (file)
@@ -233,7 +233,8 @@ bool ParseFormatSring(FormatStringHandler &H, const char *I, const char *E) {
     if (!FSR.hasValue())
       break;    
     // We have a format specifier.  Pass it to the callback.
-    H.HandleFormatSpecifier(FSR.getValue(), FSR.getStart(), I);
+    if (!H.HandleFormatSpecifier(FSR.getValue(), FSR.getStart(), I))
+      return false;
   }  
   assert(I == E && "Format string not exhausted");      
   return false;