<div dir="ltr">+Argyrios</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 11, 2013 at 10:30 AM, Pavel Labath <span dir="ltr"><<a href="mailto:labath@google.com" target="_blank">labath@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi klimek,<br>
<br>
"register" functions for the checker were caching the checker objects in a<br>
static variable. This caused problems when the function is called with a<br>
different CheckerManager.<br>
<br>
<a href="http://llvm-reviews.chandlerc.com/D955" target="_blank">http://llvm-reviews.chandlerc.com/D955</a><br>
<br>
Files:<br>
  lib/StaticAnalyzer/Checkers/CStringChecker.cpp<br>
<br>
Index: lib/StaticAnalyzer/Checkers/CStringChecker.cpp<br>
===================================================================<br>
--- lib/StaticAnalyzer/Checkers/CStringChecker.cpp<br>
+++ lib/StaticAnalyzer/Checkers/CStringChecker.cpp<br>
@@ -2018,10 +2018,7 @@<br>
<br>
 #define REGISTER_CHECKER(name) \<br>
 void ento::register##name(CheckerManager &mgr) {\<br>
-  static CStringChecker *TheChecker = 0; \<br>
-  if (TheChecker == 0) \<br>
-    TheChecker = mgr.registerChecker<CStringChecker>(); \<br>
-  TheChecker->Filter.Check##name = true; \<br>
+  mgr.registerChecker<CStringChecker>()->Filter.Check##name = true; \<br>
 }<br>
<br>
 REGISTER_CHECKER(CStringNullArg)<br>
</blockquote></div><br></div>