Skip to content
  1. Feb 06, 2009
  2. Feb 05, 2009
    • Ted Kremenek's avatar
      Add 'AppendValue' to the list of magic CF function names that cause a tracked... · 0ca23d3f
      Ted Kremenek authored
      Add 'AppendValue' to the list of magic CF function names that cause a tracked object to escape.  Fixes <rdar://problem/6560661>.
      
      llvm-svn: 63891
      0ca23d3f
    • Zhongxing Xu's avatar
      Make SymbolicRegion subclass TypedRegion, for symbols usually have types, so · 9103df16
      Zhongxing Xu authored
      do the symblic regions associated with them and we need them to be typed.
      
      Current SymbolicRegion::getRValueType() method is very restricting. It may be
      modified when we are more clear about what could be the types of symblic
      regions.
      
      BasicConstraintManager::Assume() is changed due to that now SymblicRegion is a
      subclass of SubRegion.
       
      
      llvm-svn: 63844
      9103df16
    • Ted Kremenek's avatar
      Remove a bunch of obscene double-buffering of BugReports in the retain/release · 400aae7f
      Ted Kremenek authored
      checker. This was previously needed because BugReport objects were previously
      allocated on the stack and not owned by BugReporter. Now we can just issue them
      on the fly. This change was motivated because we were seeing some weird cases
      where some really long paths would get issued for bugs (particularly leaks)
      because of some double-caching.
      
      llvm-svn: 63840
      400aae7f
    • Ted Kremenek's avatar
      fb379b26
    • Ted Kremenek's avatar
      Overhaul BugReporter interface and implementation. The new interface cleans up · fc5d067e
      Ted Kremenek authored
      the ownership of BugTypes and BugReports. Now BugReports are owned by BugTypes,
      and BugTypes are owned by the BugReporter object.
      
      The major functionality change in this patch is that reports are not immediately
      emitted by a call to BugReporter::EmitWarning (now called EmitReport), but
      instead of queued up in report "equivalence classes". When
      BugReporter::FlushReports() is called, it emits one diagnostic per report
      equivalence class. This provides a nice cleanup with the caching of reports as
      well as enables the BugReporter engine to select the "best" path for reporting a
      path-sensitive bug based on all the locations in the ExplodedGraph that the same
      bug could occur.
      
      Along with this patch, Leaks are now coalesced into a common equivalence class
      by their allocation site, and the "summary" diagnostic for leaks now reports the
      allocation site as the location of the bug (this may later be augmented to also
      provide an example location where the leak occurs).
      
      llvm-svn: 63796
      fc5d067e
  3. Feb 04, 2009
  4. Jan 30, 2009
    • Ted Kremenek's avatar
      Fix horrible non-termination bug in LiveVariables. The issue was that · 378e7fd3
      Ted Kremenek authored
      the liveness state of block-level expressions could oscillate because
      of two issues:
      - The initial value before a merge was not always set to "Top"
      - The set of live block-level expressions is a union, not an intersection
      
      This fixes <rdar://problem/650084>.
      
      llvm-svn: 63421
      378e7fd3
    • Ted Kremenek's avatar
      Move method out-of-line. · 0b0a6483
      Ted Kremenek authored
      llvm-svn: 63412
      0b0a6483
    • Douglas Gregor's avatar
      Switch Type::isAggregateType to use the C++ definition of "aggregate · ddb2485e
      Douglas Gregor authored
      type" rather than the C definition. We do this because both C99 and
      Clang always use "aggregate type" as "aggregate or union type", and
      the C++ definition includes union types.
      
      llvm-svn: 63395
      ddb2485e
    • Chris Lattner's avatar
      update for change in API. · 34beb046
      Chris Lattner authored
      llvm-svn: 63363
      34beb046
    • Ted Kremenek's avatar
      Fix a couple bugs: · 7594e2a5
      Ted Kremenek authored
      - NonLoc::MakeVal() would use sizeof(unsigned) (literally) instead of consulting
        ASTContext for the size (in bits) of 'int'. While it worked, it was a
        conflation of concepts and using ASTContext.IntTy is 100% correct.
      - RegionStore::getSizeInElements() no longer assumes that a VarRegion has the
        type "ConstantArray", and handles the case when uses use ordinary variables
        as if they were arrays.
      - Fixed ElementRegion::getRValueType() to just return the rvalue type of its
        "array region" in the case the array didn't have ArrayType.
      - All of this fixes <rdar://problem/6541136>
      
      llvm-svn: 63347
      7594e2a5
  5. Jan 29, 2009
  6. Jan 28, 2009
  7. Jan 27, 2009
    • Chris Lattner's avatar
      Split the single monolithic DiagnosticKinds.def file into one · 7368d581
      Chris Lattner authored
      .def file for each library.  This means that adding a diagnostic
      to sema doesn't require all the other libraries to be rebuilt.
      
      Patch by Anders Johnsen!
      
      llvm-svn: 63111
      7368d581
    • Ted Kremenek's avatar
      Fix bug in BasicStore::getLValueElement where if the base of an array... · 422d81dc
      Ted Kremenek authored
      Fix bug in BasicStore::getLValueElement where if the base of an array subscript expression was an ElementRegion we stacked another ElementRegion on top of that.
      
      This fixes PR 3422.
      
      llvm-svn: 63110
      422d81dc
    • Chris Lattner's avatar
      Introduce a new PresumedLoc class to represent the concept of a location · f1ca7d3e
      Chris Lattner authored
      as reported to the user and as manipulated by #line.  This is what __FILE__,
      __INCLUDE_LEVEL__, diagnostics and other things should follow (but not 
      dependency generation!).  
      
      This patch also includes several cleanups along the way: 
      
      - SourceLocation now has a dump method, and several other places 
        that did similar things now use it.
      - I cleaned up some code in AnalysisConsumer, but it should probably be
        simplified further now that NamedDecl is better.
      - TextDiagnosticPrinter is now simplified and cleaned up a bit.
      
      This patch is a prerequisite for #line, but does not actually provide 
      any #line functionality.
      
      llvm-svn: 63098
      f1ca7d3e
    • Ted Kremenek's avatar
      PathDiagnostics: · a3f462e4
      Ted Kremenek authored
      - Add the distinction between the 'bug type' and the 'bug description'
      
      HTMLDiagnostics:
      - Output the bug type field as HTML comments
      
      scan-build:
      - Use the bug type field instead of the bug description for the HTML table.
      - Radar filing now automatically picks up the bug description in the title (addresses <rdar://problem/6265970>)
      
      llvm-svn: 63084
      a3f462e4
  8. Jan 26, 2009
  9. Jan 25, 2009
  10. Jan 24, 2009
  11. Jan 23, 2009
Loading