clang  5.0.0
Functions
CloneDetection.cpp File Reference
#include "clang/Analysis/CloneDetection.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/RecursiveASTVisitor.h"
#include "clang/AST/Stmt.h"
#include "clang/Lex/Lexer.h"
#include "llvm/Support/MD5.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/Path.h"
Include dependency graph for CloneDetection.cpp:

Go to the source code of this file.

Functions

static void printMacroName (llvm::raw_string_ostream &MacroStack, ASTContext &Context, SourceLocation Loc)
 Prints the macro name that contains the given SourceLocation into the given raw_string_ostream. More...
 
static bool containsAnyInGroup (StmtSequence &Seq, CloneDetector::CloneGroup &Group)
 Returns true if and only if Stmt contains at least one other sequence in the Group. More...
 
static bool containsGroup (CloneDetector::CloneGroup &Group, CloneDetector::CloneGroup &OtherGroup)
 Returns true if and only if all sequences in OtherGroup are contained by a sequence in Group. More...
 
static size_t createHash (llvm::MD5 &Hash)
 
static void CollectStmtSequenceData (const StmtSequence &Sequence, FoldingSetNodeIDWrapper &OutputData)
 Writes the relevant data from all statements and child statements in the given StmtSequence into the given FoldingSetNodeID. More...
 
static bool areSequencesClones (const StmtSequence &LHS, const StmtSequence &RHS)
 Returns true if both sequences are clones of each other. More...
 

Function Documentation

static bool areSequencesClones ( const StmtSequence LHS,
const StmtSequence RHS 
)
static

Returns true if both sequences are clones of each other.

Definition at line 305 of file CloneDetection.cpp.

References CollectStmtSequenceData().

Referenced by clang::RecursiveCloneTypeIIConstraint::constrain().

static void CollectStmtSequenceData ( const StmtSequence Sequence,
FoldingSetNodeIDWrapper &  OutputData 
)
static

Writes the relevant data from all statements and child statements in the given StmtSequence into the given FoldingSetNodeID.

Definition at line 288 of file CloneDetection.cpp.

References clang::Sema::getASTContext(), and S.

Referenced by areSequencesClones().

static bool containsAnyInGroup ( StmtSequence Seq,
CloneDetector::CloneGroup Group 
)
static

Returns true if and only if Stmt contains at least one other sequence in the Group.

Definition at line 131 of file CloneDetection.cpp.

References clang::StmtSequence::contains().

Referenced by containsGroup().

static bool containsGroup ( CloneDetector::CloneGroup Group,
CloneDetector::CloneGroup OtherGroup 
)
static

Returns true if and only if all sequences in OtherGroup are contained by a sequence in Group.

Definition at line 142 of file CloneDetection.cpp.

References containsAnyInGroup().

Referenced by clang::OnlyLargestCloneConstraint::constrain().

static size_t createHash ( llvm::MD5 &  Hash)
static

Definition at line 204 of file CloneDetection.cpp.

References min().

static void printMacroName ( llvm::raw_string_ostream &  MacroStack,
ASTContext Context,
SourceLocation  Loc 
)
static

Prints the macro name that contains the given SourceLocation into the given raw_string_ostream.

Definition at line 96 of file CloneDetection.cpp.

References clang::Lexer::getImmediateMacroName(), clang::ASTContext::getLangOpts(), and clang::ASTContext::getSourceManager().

Referenced by clang::clone_detection::getMacroStack().