Skip to content
  • 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
Loading