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