xref: /openbsd-src/gnu/llvm/clang/lib/StaticAnalyzer/Core/FunctionSummary.cpp (revision e5dd70708596ae51455a0ffa086a00c5b29f8583)
1*e5dd7070Spatrick //===- FunctionSummary.cpp - Stores summaries of functions. ---------------===//
2*e5dd7070Spatrick //
3*e5dd7070Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*e5dd7070Spatrick // See https://llvm.org/LICENSE.txt for license information.
5*e5dd7070Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*e5dd7070Spatrick //
7*e5dd7070Spatrick //===----------------------------------------------------------------------===//
8*e5dd7070Spatrick //
9*e5dd7070Spatrick // This file defines a summary of a function gathered/used by static analysis.
10*e5dd7070Spatrick //
11*e5dd7070Spatrick //===----------------------------------------------------------------------===//
12*e5dd7070Spatrick 
13*e5dd7070Spatrick #include "clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h"
14*e5dd7070Spatrick 
15*e5dd7070Spatrick using namespace clang;
16*e5dd7070Spatrick using namespace ento;
17*e5dd7070Spatrick 
getTotalNumBasicBlocks()18*e5dd7070Spatrick unsigned FunctionSummariesTy::getTotalNumBasicBlocks() {
19*e5dd7070Spatrick   unsigned Total = 0;
20*e5dd7070Spatrick   for (const auto &I : Map)
21*e5dd7070Spatrick     Total += I.second.TotalBasicBlocks;
22*e5dd7070Spatrick   return Total;
23*e5dd7070Spatrick }
24*e5dd7070Spatrick 
getTotalNumVisitedBasicBlocks()25*e5dd7070Spatrick unsigned FunctionSummariesTy::getTotalNumVisitedBasicBlocks() {
26*e5dd7070Spatrick   unsigned Total = 0;
27*e5dd7070Spatrick   for (const auto &I : Map)
28*e5dd7070Spatrick     Total += I.second.VisitedBasicBlocks.count();
29*e5dd7070Spatrick   return Total;
30*e5dd7070Spatrick }
31