Skip to content
  1. Feb 05, 2009
    • 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
  2. Feb 04, 2009
  3. 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
  4. Jan 29, 2009
  5. Jan 28, 2009
  6. 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
  7. Jan 26, 2009
  8. Jan 25, 2009
  9. Jan 24, 2009
  10. Jan 23, 2009
  11. Jan 22, 2009
Loading