clang: clang::StructuralEquivalenceContext Struct Reference (original) (raw)
#include "[clang/AST/ASTStructuralEquivalence.h](ASTStructuralEquivalence%5F8h%5Fsource.html)"
Public Member Functions | |
---|---|
StructuralEquivalenceContext (ASTContext &FromCtx, ASTContext &ToCtx, NonEquivalentDeclSet &NonEquivalentDecls, StructuralEquivalenceKind EqKind, bool StrictTypeSpelling=false, bool Complain=true, bool ErrorOnTagTypeMismatch=false, bool IgnoreTemplateParmDepth=false) | |
DiagnosticBuilder | Diag1 (SourceLocation Loc, unsigned DiagID) |
DiagnosticBuilder | Diag2 (SourceLocation Loc, unsigned DiagID) |
bool | IsEquivalent (Decl *D1, Decl *D2) |
Determine whether the two declarations are structurally equivalent. | |
bool | IsEquivalent (QualType T1, QualType T2) |
Determine whether the two types are structurally equivalent. | |
bool | IsEquivalent (Stmt *S1, Stmt *S2) |
Determine whether the two statements are structurally equivalent. | |
unsigned | getApplicableDiagnostic (unsigned ErrorDiagnostic) |
Public Attributes | |
---|---|
ASTContext & | FromCtx |
AST contexts for which we are checking structural equivalence. | |
ASTContext & | ToCtx |
std::queue< std::pair< Decl *, Decl * > > | DeclsToCheck |
llvm::DenseSet< std::pair< Decl *, Decl * > > | VisitedDecls |
NonEquivalentDeclSet & | NonEquivalentDecls |
Declaration (from, to) pairs that are known not to be equivalent (which we have already complained about). | |
StructuralEquivalenceKind | EqKind |
bool | StrictTypeSpelling |
Whether we're being strict about the spelling of types when unifying two types. | |
bool | ErrorOnTagTypeMismatch |
Whether warn or error on tag type mismatches. | |
bool | Complain |
Whether to complain about failures. | |
bool | LastDiagFromC2 = false |
true if the last diagnostic came from ToCtx. | |
bool | IgnoreTemplateParmDepth |
Whether to ignore comparing the depth of template param(TemplateTypeParm) | |
Definition at line 41 of file ASTStructuralEquivalence.h.
◆ NonEquivalentDeclSet
Store declaration pairs already found to be non-equivalent.
key: (from, to, IgnoreTemplateParmDepth)
Definition at line 44 of file ASTStructuralEquivalence.h.
◆ Diag1()
◆ Diag2()
◆ findUntaggedStructOrUnionIndex()
std::optional< unsigned > StructuralEquivalenceContext::findUntaggedStructOrUnionIndex ( RecordDecl * Anon) | static |
---|
◆ getApplicableDiagnostic()
unsigned StructuralEquivalenceContext::getApplicableDiagnostic | ( | unsigned | ErrorDiagnostic | ) |
---|
◆ IsEquivalent() [1/3]
bool StructuralEquivalenceContext::IsEquivalent | ( | Decl * | D1, |
---|---|---|---|
Decl * | D2 | ||
) |
◆ IsEquivalent() [2/3]
◆ IsEquivalent() [3/3]
bool StructuralEquivalenceContext::IsEquivalent | ( | Stmt * | S1, |
---|---|---|---|
Stmt * | S2 | ||
) |
◆ Complain
bool clang::StructuralEquivalenceContext::Complain
◆ DeclsToCheck
std::queue<std::pair<Decl *, Decl *> > clang::StructuralEquivalenceContext::DeclsToCheck
◆ EqKind
◆ ErrorOnTagTypeMismatch
bool clang::StructuralEquivalenceContext::ErrorOnTagTypeMismatch
◆ FromCtx
ASTContext& clang::StructuralEquivalenceContext::FromCtx
◆ IgnoreTemplateParmDepth
bool clang::StructuralEquivalenceContext::IgnoreTemplateParmDepth
◆ LastDiagFromC2
bool clang::StructuralEquivalenceContext::LastDiagFromC2 = false
◆ NonEquivalentDecls
Declaration (from, to) pairs that are known not to be equivalent (which we have already complained about).
Definition at line 59 of file ASTStructuralEquivalence.h.
◆ StrictTypeSpelling
bool clang::StructuralEquivalenceContext::StrictTypeSpelling
◆ ToCtx
ASTContext & clang::StructuralEquivalenceContext::ToCtx
◆ VisitedDecls
llvm::DenseSet<std::pair<Decl *, Decl *> > clang::StructuralEquivalenceContext::VisitedDecls
The documentation for this struct was generated from the following files:
- include/clang/AST/ASTStructuralEquivalence.h
- lib/AST/ASTStructuralEquivalence.cpp