Skip to content
Snippets Groups Projects
  1. Sep 17, 2015
    • Gabor Horvath's avatar
      [Static Analyzer] Generics Checker: When an ObjC method returns a specialized... · 6df94165
      Gabor Horvath authored
      [Static Analyzer] Generics Checker: When an ObjC method returns a specialized object, track it properly.
      
      Differential Revision: http://reviews.llvm.org/D12889
      
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247861 91177308-0d34-0410-b5e6-96231b3b80d8
      6df94165
    • Devin Coughlin's avatar
      [analyzer] Add generateErrorNode() APIs to CheckerContext. · 440c44a9
      Devin Coughlin authored
      The analyzer trims unnecessary nodes from the exploded graph before reporting
      path diagnostics. However, in some cases it can trim all nodes (including the
      error node), leading to an assertion failure (see
      https://llvm.org/bugs/show_bug.cgi?id=24184).
      
      This commit addresses the issue by adding two new APIs to CheckerContext to
      explicitly create error nodes. Unless the client provides a custom tag, these
      APIs tag the node with the checker's tag -- preventing it from being trimmed.
      The generateErrorNode() method creates a sink error node, while
      generateNonFatalErrorNode() creates an error node for a path that should
      continue being explored.
      
      The intent is that one of these two methods should be used whenever a checker
      creates an error node.
      
      This commit updates the checkers to use these APIs. These APIs
      (unlike addTransition() and generateSink()) do not take an explicit Pred node.
      This is because there are not any error nodes in the checkers that were created
      with an explicit different than the default (the CheckerContext's Pred node).
      
      It also changes generateSink() to require state and pred nodes (previously
      these were optional) to reduce confusion.
      
      Additionally, there were several cases where checkers did check whether a
      generated node could be null; we now explicitly check for null in these places.
      
      This commit also includes a test case written by Ying Yi as part of
      http://reviews.llvm.org/D12163 (that patch originally addressed this issue but
      was reverted because it introduced false positive regressions).
      
      Differential Revision: http://reviews.llvm.org/D12780
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247859 91177308-0d34-0410-b5e6-96231b3b80d8
      440c44a9
  2. Sep 16, 2015
  3. Sep 15, 2015
  4. Sep 14, 2015
Loading