Skip to content
  1. Sep 22, 2009
  2. Sep 19, 2009
  3. Sep 18, 2009
    • Ted Kremenek's avatar
      Revert most of r82198, which was causing a large number of crashes · e3d209ff
      Ted Kremenek authored
      when running the analyzer on real projects.  We'll keep the change to
      AnalysisManager.cpp in r82198 so that -fobjc-gc analyzes code
      correctly in both GC and non-GC modes, although this may emit two
      diagnostics for each bug in some cases (a better solution will come
      later).
      
      llvm-svn: 82201
      e3d209ff
    • Ted Kremenek's avatar
      Introduce caching of diagnostics in BugReporter. This provides extra · 82f7f9c0
      Ted Kremenek authored
      pruning of diagnostics that may be emitted multiple times.  This is
      accomplished by adding FoldingSet profiling support to PathDiagnostic,
      and then having BugReporter record what diagnostics have been issued.
      
      This was motived to a serious bug introduced by moving the
      'divide-by-zero' checking outside of GRExprEngine into a separate
      'Checker' class.  When analyzing code using the '-fobjc-gc' option, a
      given function would be analyzed twice, but the second time various
      "internal checks" would be disabled to avoid emitting multiple
      diagnostics (e.g., "null dereference") for the same issue.  The
      problem is that such checks also effect path pruning and don't just
      emit diagnostics.  This resulted in an assertion failure involving a
      real divide-by-zero in some analyzed code where we would get an
      assertion failure in APInt because the 'DivZero' check was disabled
      and didn't prune the logic that resulted in the divide-by-zero in the
      analyzer.
      
      The implemented solution is somewhat of a hack, and may not perform
      extremely well.  This will need to be cleaned up over time.
      
      As a regression test, 'misc-ps.m' has been modified so that its tests
      are run using -fobjc-gc to test this diagnostic pruning behavior.
      
      llvm-svn: 82198
      82f7f9c0
  4. Sep 16, 2009
  5. Sep 15, 2009
  6. Sep 14, 2009
  7. Sep 12, 2009
  8. Sep 11, 2009
  9. Sep 10, 2009
  10. Sep 09, 2009
  11. Sep 05, 2009
  12. Sep 04, 2009
  13. Sep 03, 2009
  14. Sep 02, 2009
  15. Sep 01, 2009
  16. Aug 31, 2009
  17. Aug 29, 2009
  18. Aug 28, 2009
Loading