clang  5.0.0
Namespaces | Enumerations | Functions
AnalysisBasedWarnings.cpp File Reference
#include "clang/Sema/AnalysisBasedWarnings.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/EvaluatedExprVisitor.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExprObjC.h"
#include "clang/AST/ParentMap.h"
#include "clang/AST/RecursiveASTVisitor.h"
#include "clang/AST/StmtCXX.h"
#include "clang/AST/StmtObjC.h"
#include "clang/AST/StmtVisitor.h"
#include "clang/Analysis/Analyses/CFGReachabilityAnalysis.h"
#include "clang/Analysis/Analyses/Consumed.h"
#include "clang/Analysis/Analyses/ReachableCode.h"
#include "clang/Analysis/Analyses/ThreadSafety.h"
#include "clang/Analysis/Analyses/UninitializedValues.h"
#include "clang/Analysis/AnalysisContext.h"
#include "clang/Analysis/CFG.h"
#include "clang/Analysis/CFGStmtMap.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/Sema/ScopeInfo.h"
#include "clang/Sema/SemaInternal.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Casting.h"
#include <algorithm>
#include <deque>
#include <iterator>
Include dependency graph for AnalysisBasedWarnings.cpp:

Go to the source code of this file.

Namespaces

 clang
 /file This file defines classes for searching and anlyzing source code clones.
 
 clang::threadSafety
 
 clang::consumed
 

Enumerations

enum  RecursiveState { FoundNoPath, FoundPath, FoundPathWithNoRecursiveCall }
 
enum  ThrowState { FoundNoPathForThrow, FoundPathForThrow, FoundPathWithNoThrowOutFunction }
 
enum  ControlFlowKind {
  UnknownFallThrough, NeverFallThrough, MaybeFallThrough, AlwaysFallThrough,
  NeverFallThroughOrReturn
}
 

Functions

static void CheckUnreachable (Sema &S, AnalysisDeclContext &AC)
 CheckUnreachable - Check for unreachable code. More...
 
static bool hasRecursiveCallInPath (const FunctionDecl *FD, CFGBlock &Block)
 
static bool checkForRecursiveFunctionCall (const FunctionDecl *FD, CFG *cfg)
 
static void checkRecursiveFunction (Sema &S, const FunctionDecl *FD, const Stmt *Body, AnalysisDeclContext &AC)
 
static bool isThrowCaught (const CXXThrowExpr *Throw, const CXXCatchStmt *Catch)
 
static bool isThrowCaughtByHandlers (const CXXThrowExpr *CE, const CXXTryStmt *TryStmt)
 
static bool doesThrowEscapePath (CFGBlock Block, SourceLocation &OpLoc)
 
static bool hasThrowOutNonThrowingFunc (SourceLocation &OpLoc, CFG *BodyCFG)
 
static void EmitDiagForCXXThrowInNonThrowingFunc (Sema &S, SourceLocation OpLoc, const FunctionDecl *FD)
 
static void checkThrowInNonThrowingFunc (Sema &S, const FunctionDecl *FD, AnalysisDeclContext &AC)
 
static bool isNoexcept (const FunctionDecl *FD)
 
static ControlFlowKind CheckFallThrough (AnalysisDeclContext &AC)
 CheckFallThrough - Check that we don't fall off the end of a Statement that should return a value. More...
 
static void CheckFallThroughForBody (Sema &S, const Decl *D, const Stmt *Body, const BlockExpr *blkExpr, const CheckFallThroughDiagnostics &CD, AnalysisDeclContext &AC)
 CheckFallThroughForFunctionDef - Check that we don't fall off the end of a function that should return a value. More...
 
static bool SuggestInitializationFixit (Sema &S, const VarDecl *VD)
 
static void CreateIfFixit (Sema &S, const Stmt *If, const Stmt *Then, const Stmt *Else, bool CondVal, FixItHint &Fixit1, FixItHint &Fixit2)
 Create a fixit to remove an if-like statement, on the assumption that its condition is CondVal. More...
 
static void DiagUninitUse (Sema &S, const VarDecl *VD, const UninitUse &Use, bool IsCapturedByBlock)
 DiagUninitUse – Helper function to produce a diagnostic for an uninitialized use of a variable. More...
 
static bool DiagnoseUninitializedUse (Sema &S, const VarDecl *VD, const UninitUse &Use, bool alwaysReportSelfInit=false)
 DiagnoseUninitializedUse – Helper function for diagnosing uses of an uninitialized variable. More...
 
static StringRef getFallthroughAttrSpelling (Preprocessor &PP, SourceLocation Loc)
 
static void DiagnoseSwitchLabelsFallthrough (Sema &S, AnalysisDeclContext &AC, bool PerFunction)
 
static bool isInLoop (const ASTContext &Ctx, const ParentMap &PM, const Stmt *S)
 
static void diagnoseRepeatedUseOfWeak (Sema &S, const sema::FunctionScopeInfo *CurFn, const Decl *D, const ParentMap &PM)
 
static unsigned isEnabled (DiagnosticsEngine &D, unsigned diag)
 
static void flushDiagnostics (Sema &S, const sema::FunctionScopeInfo *fscope)
 

Enumeration Type Documentation

Enumerator
UnknownFallThrough 
NeverFallThrough 
MaybeFallThrough 
AlwaysFallThrough 
NeverFallThroughOrReturn 

Definition at line 438 of file AnalysisBasedWarnings.cpp.

Enumerator
FoundNoPath 
FoundPath 
FoundPathWithNoRecursiveCall 

Definition at line 205 of file AnalysisBasedWarnings.cpp.

enum ThrowState
Enumerator
FoundNoPathForThrow 
FoundPathForThrow 
FoundPathWithNoThrowOutFunction 

Definition at line 284 of file AnalysisBasedWarnings.cpp.

Function Documentation

static ControlFlowKind CheckFallThrough ( AnalysisDeclContext AC)
static

CheckFallThrough - Check that we don't fall off the end of a Statement that should return a value.

Returns
AlwaysFallThrough iff we always fall off the end of the statement, MaybeFallThrough iff we might or might not fall off the end, NeverFallThroughOrReturn iff we never fall off the end of the statement or return. We assume NeverFallThrough iff we never fall off the end of the statement but we may return. We assume that functions not marked noreturn will return.

Definition at line 455 of file AnalysisBasedWarnings.cpp.

References AlwaysFallThrough, clang::CFGElement::castAs(), clang::AnalysisDeclContext::getAddEHEdges(), clang::CFGElement::getAs(), clang::CFGBlock::getBlockID(), clang::AnalysisDeclContext::getCFG(), clang::CFG::getEntry(), clang::CFG::getNumBlockIDs(), clang::CFGStmt::getStmt(), clang::CFGBlock::getTerminator(), clang::CFGBlock::hasNoReturnElement(), I, clang::CFGBlock::FilterOptions::IgnoreDefaultsWithCoveredEnums, MaybeFallThrough, NeverFallThrough, NeverFallThroughOrReturn, clang::CFGBlock::rbegin(), clang::CFGBlock::rend(), S, clang::reachable_code::ScanReachableFromBlock(), clang::CFGBlock::succ_begin(), clang::CFGBlock::succ_end(), and UnknownFallThrough.

Referenced by CheckFallThroughForBody().

static void CheckFallThroughForBody ( Sema S,
const Decl D,
const Stmt Body,
const BlockExpr blkExpr,
const CheckFallThroughDiagnostics &  CD,
AnalysisDeclContext AC 
)
static

CheckFallThroughForFunctionDef - Check that we don't fall off the end of a function that should return a value.

Check that we don't fall off the end of a noreturn function. We assume that functions and blocks not marked noreturn will return.

Definition at line 691 of file AnalysisBasedWarnings.cpp.

References AlwaysFallThrough, CheckFallThrough(), clang::sema::FunctionScopeInfo::CoroutinePromise, clang::Sema::Diag(), clang::Type::getAs(), clang::Sema::getCurFunction(), clang::Sema::getDiagnostics(), clang::Stmt::getLocEnd(), clang::Stmt::getLocStart(), clang::Type::getPointeeType(), clang::Expr::getType(), clang::ValueDecl::getType(), clang::sema::FunctionScopeInfo::isCoroutine(), MaybeFallThrough, NeverFallThrough, NeverFallThroughOrReturn, and UnknownFallThrough.

Referenced by clang::sema::AnalysisBasedWarnings::IssueWarnings().

static bool checkForRecursiveFunctionCall ( const FunctionDecl FD,
CFG cfg 
)
static
static void checkRecursiveFunction ( Sema S,
const FunctionDecl FD,
const Stmt Body,
AnalysisDeclContext AC 
)
static
static void checkThrowInNonThrowingFunc ( Sema S,
const FunctionDecl FD,
AnalysisDeclContext AC 
)
static
static void CheckUnreachable ( Sema S,
AnalysisDeclContext AC 
)
static
static void CreateIfFixit ( Sema S,
const Stmt If,
const Stmt Then,
const Stmt Else,
bool  CondVal,
FixItHint Fixit1,
FixItHint Fixit2 
)
static

Create a fixit to remove an if-like statement, on the assumption that its condition is CondVal.

Definition at line 836 of file AnalysisBasedWarnings.cpp.

References clang::FixItHint::CreateRemoval(), clang::CharSourceRange::getCharRange(), clang::Stmt::getLocEnd(), clang::Sema::getLocForEndOfToken(), clang::Stmt::getLocStart(), and clang::Stmt::getSourceRange().

Referenced by DiagUninitUse().

static void diagnoseRepeatedUseOfWeak ( Sema S,
const sema::FunctionScopeInfo CurFn,
const Decl D,
const ParentMap PM 
)
static
static void DiagnoseSwitchLabelsFallthrough ( Sema S,
AnalysisDeclContext AC,
bool  PerFunction 
)
static
static bool DiagnoseUninitializedUse ( Sema S,
const VarDecl VD,
const UninitUse Use,
bool  alwaysReportSelfInit = false 
)
static

DiagnoseUninitializedUse – Helper function for diagnosing uses of an uninitialized variable.

This manages the different forms of diagnostic emitted for particular types of uses. Returns true if the use was diagnosed as a warning. If a particular use is one we omit warnings for, returns false.

Definition at line 1034 of file AnalysisBasedWarnings.cpp.

References clang::Sema::Context, clang::Sema::Diag(), DiagUninitUse(), clang::NamedDecl::getDeclName(), clang::VarDecl::getInit(), clang::Decl::getLocation(), clang::DeclaratorDecl::getLocStart(), clang::BlockExpr::getLocStart(), clang::ValueDecl::getType(), clang::UninitUse::getUser(), clang::Decl::hasAttr(), clang::Type::isBlockPointerType(), and SuggestInitializationFixit().

static void DiagUninitUse ( Sema S,
const VarDecl VD,
const UninitUse Use,
bool  IsCapturedByBlock 
)
static
static bool doesThrowEscapePath ( CFGBlock  Block,
SourceLocation OpLoc 
)
static
static void EmitDiagForCXXThrowInNonThrowingFunc ( Sema S,
SourceLocation  OpLoc,
const FunctionDecl FD 
)
static
static void flushDiagnostics ( Sema S,
const sema::FunctionScopeInfo fscope 
)
static
static StringRef getFallthroughAttrSpelling ( Preprocessor PP,
SourceLocation  Loc 
)
static
static bool hasRecursiveCallInPath ( const FunctionDecl FD,
CFGBlock Block 
)
static
static bool hasThrowOutNonThrowingFunc ( SourceLocation OpLoc,
CFG BodyCFG 
)
static
static unsigned isEnabled ( DiagnosticsEngine D,
unsigned  diag 
)
static
static bool isInLoop ( const ASTContext Ctx,
const ParentMap PM,
const Stmt S 
)
static
static bool isNoexcept ( const FunctionDecl FD)
static
static bool isThrowCaught ( const CXXThrowExpr Throw,
const CXXCatchStmt Catch 
)
static
static bool isThrowCaughtByHandlers ( const CXXThrowExpr CE,
const CXXTryStmt TryStmt 
)
static
static bool SuggestInitializationFixit ( Sema S,
const VarDecl VD 
)
static

Variable Documentation

const FunctionDecl* CurrentFunction

Definition at line 1672 of file AnalysisBasedWarnings.cpp.

SourceLocation FunEndLocation

Definition at line 1670 of file AnalysisBasedWarnings.cpp.

SourceLocation FunLocation

Definition at line 1670 of file AnalysisBasedWarnings.cpp.

Sema& S

Definition at line 1668 of file AnalysisBasedWarnings.cpp.

Referenced by clang::Sema::ActOnCXXThrow(), clang::Sema::ActOnDefs(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnMemberAccessExpr(), clang::Sema::ActOnOpenMPExecutableDirective(), clang::Sema::ActOnOpenMPRegionEnd(), clang::Sema::ActOnOpenMPTargetDirective(), clang::Sema::ActOnSizeofParameterPackExpr(), clang::Sema::ActOnSuperScopeSpecifier(), clang::Sema::ActOnTranslationUnitScope(), clang::Sema::ActOnVariableDeclarator(), clang::InitializationSequence::AddAddressOverloadResolutionStep(), clang::InitializationSequence::AddArrayInitLoopStep(), clang::InitializationSequence::AddArrayInitStep(), clang::InitializationSequence::AddAtomicConversionStep(), clang::InitializationSequence::AddCAssignmentStep(), clang::InitializationSequence::AddConstructorInitializationStep(), clang::InitializationSequence::AddConversionSequenceStep(), clang::ODRHash::AddDeclarationName(), clang::InitializationSequence::AddDerivedToBaseCastStep(), clang::InitializationSequence::AddExtraneousCopyToTemporary(), clang::InitializationSequence::AddFinalCopy(), clang::InitializationSequence::AddListInitializationStep(), clang::InitializationSequence::AddLValueToRValueStep(), clang::InitializationSequence::AddObjCObjectConversionStep(), clang::InitializationSequence::AddOCLSamplerInitStep(), clang::InitializationSequence::AddOCLZeroEventStep(), clang::InitializationSequence::AddOCLZeroQueueStep(), clang::InitializationSequence::AddParenthesizedArrayInitStep(), clang::InitializationSequence::AddProduceObjCObjectStep(), clang::InitializationSequence::AddQualificationConversionStep(), clang::InitializationSequence::AddReferenceBindingStep(), clang::InitializationSequence::AddStdInitializerListConstructionStep(), clang::DiagnosticBuilder::AddString(), clang::InitializationSequence::AddStringInitStep(), clang::InitializationSequence::AddUserConversionStep(), clang::InitializationSequence::AddZeroInitializationStep(), clang::ento::PathDiagnostic::appendToDesc(), clang::StmtSequence::begin(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::Sema::BuildForRangeBeginEndCall(), clang::Sema::BuildMemInitializer(), BuildParentMap(), clang::Sema::BuildQualifiedDeclarationNameExpr(), clang::Sema::BuildUsingDeclaration(), clang::Sema::CheckClassTemplate(), CheckConstexprFunctionStmt(), CheckFallThrough(), CheckIfAnyEnclosingLambdasMustCaptureAnyPotentialCaptures(), CheckObjCInstMethSignature(), CheckOpenMPIterationSpace(), clang::Sema::CheckSwitchCondition(), ClassifyInternal(), clang::Sema::ClassifyName(), CollectArgsForIntegratedAssembler(), CollectStmtSequenceData(), clang::Scope::containedInPrototypeScope(), clang::ento::containsEnum(), clang::ento::containsStaticLocal(), ConvertTypeToDiagnosticString(), clang::VerifyDiagnosticConsumer::Directive::create(), clang::ento::PathDiagnosticLocation::create(), clang::ento::PathDiagnosticLocation::createEndOfPath(), clang::PartialDiagnostic::StorageAllocator::Deallocate(), clang::Sema::DiagnoseAlwaysNonNullPointer(), clang::Sema::DiagnoseEmptyLookup(), DiagnoseInvalidRedeclaration(), clang::Sema::DiagnoseUnknownTypeName(), clang::Sema::DiagnoseUnusedExprResult(), clang::HeaderMapImpl::dump(), clang::ast_type_traits::DynTypedNode::dump(), clang::InitializationSequence::dump(), clang::CodeGen::CoverageMappingModuleGen::emit(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitCaseStmt(), clang::CodeGen::CodeGenPGO::emitCounterIncrement(), clang::CodeGen::CodeGenFunction::EmitCXXThrowExpr(), emitDispatchForLoopBounds(), emitDistributeParallelForDispatchBounds(), emitDistributeParallelForDistributeInnerBoundParams(), emitDistributeParallelForInnerBounds(), emitForLoopBounds(), clang::CodeGen::CodeGenFunction::EmitFunctionBody(), emitInnerParallelForWhenCombined(), clang::CodeGen::CodeGenFunction::EmitObjCAutoreleasePoolStmt(), emitOffloadingArrays(), clang::CodeGen::CodeGenFunction::EmitOMPAtomicDirective(), clang::CodeGen::CodeGenFunction::EmitOMPCriticalDirective(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeDirective(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPMasterDirective(), clang::CodeGen::CodeGenFunction::EmitOMPOrderedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelSectionsDirective(), clang::CodeGen::CodeGenFunction::EmitOMPSectionDirective(), clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPSingleDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetDataDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetDeviceFunction(), clang::CodeGen::CodeGenFunction::EmitOMPTargetDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelDeviceFunction(), clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDeviceFunction(), clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskBasedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskgroupDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskLoopBasedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDirective(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), clang::CodeGen::CodeGenFunction::EmitStmt(), emitTargetParallelRegion(), clang::StmtSequence::end(), clang::CodeGen::CGCXXABI::ErrorUnsupportedABI(), EvaluateStmt(), clang::ExternalASTMerger::ExternalASTMerger(), clang::Sema::FindCompositePointerType(), clang::Sema::FinishCXXForRangeStmt(), clang::Sema::FinishObjCForCollectionStmt(), clang::Diagnostic::FormatDiagnostic(), clang::driver::Multilib::gccSuffix(), GenerateMinimalPathDiagnostic(), clang::CFGStmtMap::getBlock(), GetCurrentOrPreviousStmt(), clang::ento::bugreporter::GetDenomExpr(), clang::ento::bugreporter::getDerefExpr(), llvm::GraphTraits< clang::Stmt * >::getEntryNode(), llvm::GraphTraits< const clang::Stmt * >::getEntryNode(), clang::MultiplexExternalSemaSource::GetExternalCXXCtorInitializers(), GetFullTypeForDeclarator(), getIdentifier(), clang::VarDecl::getInit(), getIvarAccessString(), getLastStmt(), GetLLVMTLSModel(), clang::InitListExpr::getLocEnd(), clang::InitListExpr::getLocStart(), clang::Preprocessor::getMacroDefinition(), clang::Preprocessor::getMacroDefinitionAtLoc(), clang::ObjCMethodCall::getMessageKind(), clang::ento::PathDiagnosticLocation::getNextStmt(), clang::ento::NilReceiverBRVisitor::getNilReceiver(), llvm::DOTGraphTraits< ExplodedNode * >::getNodeLabel(), clang::FileManager::getNoncachedStatValue(), clang::Sema::getNonFieldDeclScope(), clang::ASTContext::getObjCEncodingForBlock(), clang::ASTContext::getObjCEncodingForFunctionDecl(), clang::ASTContext::getObjCEncodingForMethodDecl(), clang::ASTContext::getObjCEncodingForPropertyDecl(), clang::Sema::getObjCMessageKind(), getOpenMPDirectiveKindEx(), clang::driver::toolchains::HexagonToolChain::getOptimizationLevel(), getOptimizationLevel(), clang::ParentMap::getOuterParenParent(), clang::ParentMap::getParentIgnoreParenCasts(), clang::ParentMap::getParentIgnoreParenImpCasts(), clang::ParentMap::getParentIgnoreParens(), clang::CodeCompletionTUInfo::getParentName(), GetPreviousStmt(), clang::Sema::getPrintable(), getRedirectedFileStatus(), clang::CodeGen::CodeGenPGO::getRegionCount(), clang::analyze_format_string::ArgType::getRepresentativeTypeName(), clang::ento::bugreporter::GetRetValExpr(), clang::Sema::getScopeForContext(), clang::ast_type_traits::DynTypedNode::getSourceRange(), clang::ento::BugReport::getStmt(), getStmtBeforeCond(), getStmtParent(), clang::ento::Environment::getSVal(), clang::ASTWriter::getSwitchCaseID(), getTagInjectionScope(), getTerminatorCondition(), clang::Sema::getTypeName(), GetUnreachableLoc(), getValidSourceLocation(), handleAVRInterruptAttr(), handleAVRSignalAttr(), handleComplexIntConversion(), clang::driver::Driver::HandleImmediateArgs(), handleIntegerConversion(), handleObjCOwnershipTypeAttr(), handleSimpleAttributeWithExclusions(), clang::MultiplexExternalSemaSource::hasExternalDefinitions(), HashHMapKey(), clang::FunctionDecl::hasTrivialBody(), clang::Stmt::IgnoreContainers(), ignoreTransparentExprs(), clang::driver::Multilib::includeSuffix(), clang::PCHGenerator::InitializeSema(), clang::ASTReader::InitializeSema(), isARCNilInitializedLocal(), clang::FilenamePatternConstraint::isAutoGenerated(), isCallableInState(), clang::ento::CallEvent::isCallStmt(), isConditionForTerminator(), isConfigurationValue(), IsControlFlowExpr(), isGlobalVar(), clang::ObjCNoReturn::isImplicitNoReturn(), isIncrementOrInitInForLoop(), isInLoop(), isInLoopBody(), clang::Scope::isInObjcMethodOuterScope(), clang::Scope::isInObjcMethodScope(), clang::LiveVariables::isLive(), isNonEHScope(), clang::Scope::isSwitchScope(), IsUsedAsNormalCleanup(), clang::Parser::ObjCTypeParamListScope::leave(), LookThroughStmt(), clang::Sema::LookupTemplateName(), clang::Sema::LookupVisibleDecls(), OpenCLArithmeticConversions(), clang::threadSafety::til::SExpr::operator new(), clang::StmtSequence::operator!=(), clang::StmtSequence::operator==(), clang::driver::Multilib::osSuffix(), clang::TreeTransform< Derived >::Owned(), clang::RawComment::parse(), clang::ParseAST(), ParseCodeGenArgs(), clang::Sema::ParseObjCStringLiteral(), parseSanitizeTrapArgs(), clang::InitializationSequence::Perform(), clang::Sema::GlobalEagerInstantiationScope::perform(), clang::Sema::LocalEagerInstantiationScope::perform(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), clang::ento::Environment::print(), clang::ast_type_traits::DynTypedNode::print(), PrintActions1(), clang::APValue::printPretty(), ProcessDeclAttribute(), clang::Sema::ProcessStmtAttributes(), clang::ASTReader::ReadMethodPool(), clang::TreeTransform< Derived >::RebuildCaseStmtBody(), clang::ASTWriter::RecordSwitchCaseID(), REGISTER_MAP_WITH_PROGRAMSTATE(), clang::UsingDecl::removeShadowDecl(), clang::InitializationSequence::RewrapReferenceInitList(), clang::driver::SanitizerArgs::SanitizerArgs(), clang::CodeGen::scanForTargetRegionsFunctions(), clang::ento::ProgramState::scanReachableSymbols(), SemaBuiltinSEHScopeCheck(), clang::OMPExecutableDirective::setAssociatedStmt(), clang::ObjCSubscriptRefExpr::setBaseExpr(), clang::CXXForRangeStmt::setBeginStmt(), clang::ObjCForCollectionStmt::setBody(), clang::CXXForRangeStmt::setBody(), clang::SwitchStmt::setBody(), clang::WhileStmt::setBody(), clang::DoStmt::setBody(), clang::ForStmt::setBody(), clang::ObjCAtCatchStmt::setCatchBody(), clang::ObjCAtTryStmt::setCatchStmt(), clang::ObjCForCollectionStmt::setElement(), clang::IfStmt::setElse(), clang::CXXForRangeStmt::setEndStmt(), clang::ObjCAtFinallyStmt::setFinallyBody(), clang::ObjCAtTryStmt::setFinallyStmt(), clang::IfStmt::setInit(), clang::SwitchStmt::setInit(), clang::ForStmt::setInit(), clang::ObjCSubscriptRefExpr::setKeyExpr(), clang::CompoundStmt::setLastStmt(), clang::CXXForRangeStmt::setLoopVarStmt(), clang::threadSafety::til::Variable::setName(), setPGOInstrumentor(), clang::OMPClauseWithPostUpdate::setPostUpdateExpr(), clang::CXXForRangeStmt::setRangeStmt(), clang::ObjCSelectorExpr::setSelector(), clang::ObjCStringLiteral::setString(), clang::ObjCAutoreleasePoolStmt::setSubStmt(), clang::CaseStmt::setSubStmt(), clang::DefaultStmt::setSubStmt(), clang::StmtExpr::setSubStmt(), clang::ObjCAtSynchronizedStmt::setSynchBody(), clang::ObjCAtSynchronizedStmt::setSynchExpr(), clang::IfStmt::setThen(), clang::ObjCAtThrowStmt::setThrowExpr(), clang::ObjCAtTryStmt::setTryBody(), clang::DeclSpec::SetTypeSpecSign(), shouldEnableVectorizerAtOLevel(), clang::StmtSequence::size(), clang::StringToCudaArch(), clang::StringToCudaVirtualArch(), clang::Stmt::stripLabelLikeStatements(), clang::Sema::SubstStmt(), clang::ast_matchers::dynamic::Diagnostics::toString(), clang::ast_matchers::dynamic::Diagnostics::toStringFull(), clang::TreeTransform< Derived >::TransformOMPClause(), clang::TreeTransform< Derived >::TransformStmt(), clang::RecursiveASTVisitor< Derived >::TraverseStmt(), clang::OverloadCandidate::TryToFixBadConversion(), clang::ConversionFixItGenerator::tryToFixConversion(), TryTypoCorrectionForCall(), clang::driver::toolchains::MachO::UseDwarfDebugFlags(), clang::ento::ExprEngine::Visit(), clang::ento::FindLastStoreBRVisitor::VisitNode(), clang::driver::XRayArgs::XRayArgs(), clang::Sema::CompoundScopeRAII::~CompoundScopeRAII(), clang::Sema::CUDADiagBuilder::~CUDADiagBuilder(), clang::Sema::CXXThisScopeRAII::~CXXThisScopeRAII(), clang::Sema::FunctionScopeRAII::~FunctionScopeRAII(), clang::Sema::GlobalEagerInstantiationScope::~GlobalEagerInstantiationScope(), clang::Sema::LocalEagerInstantiationScope::~LocalEagerInstantiationScope(), and clang::Sema::PragmaStackSentinelRAII::~PragmaStackSentinelRAII().

Definition at line 1649 of file AnalysisBasedWarnings.cpp.

Referenced by diagnoseRepeatedUseOfWeak().

bool Verbose

Definition at line 1673 of file AnalysisBasedWarnings.cpp.

Referenced by clang::CompilerInstance::ExecuteAction().

DiagList Warnings

Definition at line 1669 of file AnalysisBasedWarnings.cpp.

Referenced by clang::Sema::MergeFunctionDecl().