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: