clang 20.0.0git
|
#include "clang/StaticAnalyzer/Core/PathSensitive/Store.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/CXXInheritance.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/Expr.h"
#include "clang/AST/Type.h"
#include "clang/Basic/LLVM.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include <cassert>
#include <cstdint>
#include <optional>
Go to the source code of this file.
Functions | |
static bool | regionMatchesCXXRecordType (SVal V, QualType Ty) |
static const CXXRecordDecl * | getCXXRecordType (const MemRegion *MR) |
Returns the static type of the given region, if it represents a C++ class object. | |
|
static |
Returns the static type of the given region, if it represents a C++ class object.
This handles both fully-typed regions, where the dynamic type is known, and symbolic regions, where the dynamic type is merely bounded (and even then, only ostensibly!), but does not take advantage of any dynamic type info.
Definition at line 308 of file Store.cpp.
Referenced by clang::ento::StoreManager::evalBaseToDerived().
Definition at line 232 of file Store.cpp.
References clang::Type::getAsCXXRecordDecl(), clang::CXXRecordDecl::getCanonicalDecl(), clang::Type::getPointeeCXXRecordDecl(), and V.
Referenced by clang::ento::StoreManager::evalDerivedToBase().