clang 22.0.0git
clang::Sema::FunctionEffectDiff Struct Reference

#include "clang/Sema/Sema.h"

Public Types

enum class  Kind { Added , Removed , ConditionMismatch }
enum class  OverrideResult { NoAction , Warn , Merge }
 Describes the result of effects differing between a base class's virtual method and an overriding method in a subclass. More...

Public Member Functions

StringRef effectName () const
bool shouldDiagnoseConversion (QualType SrcType, const FunctionEffectsRef &SrcFX, QualType DstType, const FunctionEffectsRef &DstFX) const
 Return true if adding or removing the effect as part of a type conversion should generate a diagnostic.
bool shouldDiagnoseRedeclaration (const FunctionDecl &OldFunction, const FunctionEffectsRef &OldFX, const FunctionDecl &NewFunction, const FunctionEffectsRef &NewFX) const
 Return true if adding or removing the effect in a redeclaration should generate a diagnostic.
OverrideResult shouldDiagnoseMethodOverride (const CXXMethodDecl &OldMethod, const FunctionEffectsRef &OldFX, const CXXMethodDecl &NewMethod, const FunctionEffectsRef &NewFX) const
 Return true if adding or removing the effect in a C++ virtual method override should generate a diagnostic.

Public Attributes

FunctionEffect::Kind EffectKind
Kind DiffKind
std::optional< FunctionEffectWithConditionOld
std::optional< FunctionEffectWithConditionNew

Detailed Description

Definition at line 15435 of file Sema.h.

Member Enumeration Documentation

โ—† Kind

Enumerator
Added 
Removed 
ConditionMismatch 

Definition at line 15436 of file Sema.h.

โ—† OverrideResult

Describes the result of effects differing between a base class's virtual method and an overriding method in a subclass.

Enumerator
NoAction 
Warn 
Merge 

Definition at line 15453 of file Sema.h.

Member Function Documentation

โ—† effectName()

StringRef clang::Sema::FunctionEffectDiff::effectName ( ) const
inline

Definition at line 15445 of file Sema.h.

References New, and Old.

โ—† shouldDiagnoseConversion()

bool clang::Sema::FunctionEffectDiff::shouldDiagnoseConversion ( QualType SrcType,
const FunctionEffectsRef & SrcFX,
QualType DstType,
const FunctionEffectsRef & DstFX ) const

Return true if adding or removing the effect as part of a type conversion should generate a diagnostic.

Definition at line 1554 of file SemaFunctionEffects.cpp.

References Added, clang::FunctionEffect::Allocating, clang::FunctionEffect::Blocking, ConditionMismatch, DiffKind, EffectKind, clang::FunctionEffect::NonAllocating, clang::FunctionEffect::NonBlocking, and Removed.

โ—† shouldDiagnoseMethodOverride()

Sema::FunctionEffectDiff::OverrideResult clang::Sema::FunctionEffectDiff::shouldDiagnoseMethodOverride ( const CXXMethodDecl & OldMethod,
const FunctionEffectsRef & OldFX,
const CXXMethodDecl & NewMethod,
const FunctionEffectsRef & NewFX ) const

Return true if adding or removing the effect in a C++ virtual method override should generate a diagnostic.

Definition at line 1616 of file SemaFunctionEffects.cpp.

References Added, clang::FunctionEffect::Allocating, clang::FunctionEffect::Blocking, ConditionMismatch, DiffKind, EffectKind, Merge, NoAction, clang::FunctionEffect::NonAllocating, clang::FunctionEffect::NonBlocking, Removed, and Warn.

โ—† shouldDiagnoseRedeclaration()

bool clang::Sema::FunctionEffectDiff::shouldDiagnoseRedeclaration ( const FunctionDecl & OldFunction,
const FunctionEffectsRef & OldFX,
const FunctionDecl & NewFunction,
const FunctionEffectsRef & NewFX ) const

Return true if adding or removing the effect in a redeclaration should generate a diagnostic.

Definition at line 1591 of file SemaFunctionEffects.cpp.

References Added, clang::FunctionEffect::Allocating, clang::FunctionEffect::Blocking, ConditionMismatch, DiffKind, EffectKind, clang::FunctionEffect::NonAllocating, clang::FunctionEffect::NonBlocking, and Removed.

Member Data Documentation

โ—† DiffKind

Kind clang::Sema::FunctionEffectDiff::DiffKind

โ—† EffectKind

FunctionEffect::Kind clang::Sema::FunctionEffectDiff::EffectKind

โ—† New

std::optional<FunctionEffectWithCondition> clang::Sema::FunctionEffectDiff::New

Definition at line 15443 of file Sema.h.

Referenced by effectName().

โ—† Old

std::optional<FunctionEffectWithCondition> clang::Sema::FunctionEffectDiff::Old

Definition at line 15441 of file Sema.h.

Referenced by effectName().


The documentation for this struct was generated from the following files: