1992acb2269171b6ef68694d71a36f6b7408d8e82Jordan Rose//== FunctionSummary.cpp - Stores summaries of functions. ----------*- C++ -*-//
2e62f048960645b79363408fdead53fec2a063c52Anna Zaks//
3e62f048960645b79363408fdead53fec2a063c52Anna Zaks//                     The LLVM Compiler Infrastructure
4e62f048960645b79363408fdead53fec2a063c52Anna Zaks//
5e62f048960645b79363408fdead53fec2a063c52Anna Zaks// This file is distributed under the University of Illinois Open Source
6e62f048960645b79363408fdead53fec2a063c52Anna Zaks// License. See LICENSE.TXT for details.
7e62f048960645b79363408fdead53fec2a063c52Anna Zaks//
8e62f048960645b79363408fdead53fec2a063c52Anna Zaks//===----------------------------------------------------------------------===//
9e62f048960645b79363408fdead53fec2a063c52Anna Zaks//
10992acb2269171b6ef68694d71a36f6b7408d8e82Jordan Rose// This file defines a summary of a function gathered/used by static analysis.
11e62f048960645b79363408fdead53fec2a063c52Anna Zaks//
12e62f048960645b79363408fdead53fec2a063c52Anna Zaks//===----------------------------------------------------------------------===//
13e62f048960645b79363408fdead53fec2a063c52Anna Zaks
14e62f048960645b79363408fdead53fec2a063c52Anna Zaks#include "clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h"
15e62f048960645b79363408fdead53fec2a063c52Anna Zaksusing namespace clang;
16e62f048960645b79363408fdead53fec2a063c52Anna Zaksusing namespace ento;
17e62f048960645b79363408fdead53fec2a063c52Anna Zaks
18e62f048960645b79363408fdead53fec2a063c52Anna Zaksunsigned FunctionSummariesTy::getTotalNumBasicBlocks() {
19e62f048960645b79363408fdead53fec2a063c52Anna Zaks  unsigned Total = 0;
20e62f048960645b79363408fdead53fec2a063c52Anna Zaks  for (MapTy::iterator I = Map.begin(), E = Map.end(); I != E; ++I) {
21992acb2269171b6ef68694d71a36f6b7408d8e82Jordan Rose    Total += I->second.TotalBasicBlocks;
22e62f048960645b79363408fdead53fec2a063c52Anna Zaks  }
23e62f048960645b79363408fdead53fec2a063c52Anna Zaks  return Total;
24e62f048960645b79363408fdead53fec2a063c52Anna Zaks}
25e62f048960645b79363408fdead53fec2a063c52Anna Zaks
26e62f048960645b79363408fdead53fec2a063c52Anna Zaksunsigned FunctionSummariesTy::getTotalNumVisitedBasicBlocks() {
27e62f048960645b79363408fdead53fec2a063c52Anna Zaks  unsigned Total = 0;
28e62f048960645b79363408fdead53fec2a063c52Anna Zaks  for (MapTy::iterator I = Map.begin(), E = Map.end(); I != E; ++I) {
29992acb2269171b6ef68694d71a36f6b7408d8e82Jordan Rose    Total += I->second.VisitedBasicBlocks.count();
30e62f048960645b79363408fdead53fec2a063c52Anna Zaks  }
31e62f048960645b79363408fdead53fec2a063c52Anna Zaks  return Total;
32e62f048960645b79363408fdead53fec2a063c52Anna Zaks}
33