clang 20.0.0git
Classes | Namespaces | Typedefs | Enumerations | Functions
BugReporterVisitors.h File Reference
#include "clang/Analysis/ProgramPoint.h"
#include "clang/Basic/LLVM.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/IntrusiveRefCntPtr.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/StringRef.h"
#include <list>
#include <memory>
#include <optional>
#include <utility>

Go to the source code of this file.

Classes

class  clang::ento::BugReporterVisitor
 BugReporterVisitors are used to add custom diagnostics along a path. More...
 
struct  clang::ento::bugreporter::TrackingOptions
 Defines a set of options altering tracking behavior. More...
 
struct  clang::ento::bugreporter::StoreInfo
 Describes an event when the value got stored into a memory region. More...
 
class  clang::ento::bugreporter::Tracker
 A generalized component for tracking expressions, values, and stores. More...
 
struct  clang::ento::bugreporter::Tracker::Result
 Describes a tracking result with the most basic information of what was actually done (or not done). More...
 
class  clang::ento::bugreporter::ExpressionHandler
 Handles expressions during the tracking. More...
 
class  clang::ento::bugreporter::StoreHandler
 Handles stores during the tracking. More...
 
class  clang::ento::bugreporter::TrackingBugReporterVisitor
 Visitor that tracks expressions and values. More...
 
class  clang::ento::TrackConstraintBRVisitor
 
class  clang::ento::NilReceiverBRVisitor
 Prints path notes when a message is sent to a nil receiver. More...
 
class  clang::ento::ConditionBRVisitor
 Visitor that tries to report interesting diagnostics from conditions. More...
 
class  clang::ento::LikelyFalsePositiveSuppressionBRVisitor
 Suppress reports that might lead to known false positives. More...
 
class  clang::ento::UndefOrNullArgVisitor
 When a region containing undefined value or '0' value is passed as an argument in a call, marks the call as interesting. More...
 
class  clang::ento::SuppressInlineDefensiveChecksVisitor
 
class  clang::ento::TagVisitor
 The visitor detects NoteTags and displays the event notes they contain. More...
 
class  clang::ento::NoStateChangeFuncVisitor
 Put a diagnostic on return statement (or on } in its absence) of all inlined functions for which some property remained unchanged. More...
 

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 
namespace  clang::ento
 
namespace  clang::ento::bugreporter
 

Typedefs

using clang::ento::bugreporter::TrackerRef = llvm::IntrusiveRefCntPtr< Tracker >
 

Enumerations

enum class  clang::ento::bugreporter::TrackingKind { clang::ento::bugreporter::Thorough , clang::ento::bugreporter::Condition }
 Specifies the type of tracking for an expression. More...
 

Functions

bool clang::ento::bugreporter::trackExpressionValue (const ExplodedNode *N, const Expr *E, PathSensitiveBugReport &R, TrackingOptions Opts={})
 Attempts to add visitors to track expression value back to its point of origin.
 
void clang::ento::bugreporter::trackStoredValue (SVal V, const MemRegion *R, PathSensitiveBugReport &Report, TrackingOptions Opts={}, const StackFrameContext *Origin=nullptr)
 Track how the value got stored into the given region and where it came from.
 
const Exprclang::ento::bugreporter::getDerefExpr (const Stmt *S)
 Given that expression S represents a pointer that would be dereferenced, try to find a sub-expression from which the pointer came from.