clang 22.0.0git
clang::OMPTraitInfo Class Reference

Helper data structure representing the traits in a match clause of an declare variant or metadirective. More...

#include "clang/AST/OpenMPClause.h"

Public Member Functions

 OMPTraitInfo (StringRef MangledName)
 Reconstruct a (partial) OMPTraitInfo object from a mangled name.
bool anyScoreOrCondition (llvm::function_ref< bool(Expr *&, bool)> Cond)
void getAsVariantMatchInfo (ASTContext &ASTCtx, llvm::omp::VariantMatchInfo &VMI) const
 Create a variant match info object from this trait info object.
std::string getMangledName () const
 Return a string representation identifying this context selector.
bool isExtensionActive (llvm::omp::TraitProperty TP)
 Check the extension trait TP is active.
void print (llvm::raw_ostream &OS, const PrintingPolicy &Policy) const
 Print a human readable representation into OS.

Public Attributes

llvm::SmallVector< OMPTraitSet, 2 > Sets
 The outermost level of selector sets.

Friends

class ASTContext

Detailed Description

Helper data structure representing the traits in a match clause of an declare variant or metadirective.

The outer level is an ordered collection of selector sets, each with an associated kind and an ordered collection of selectors. A selector has a kind, an optional score/condition, and an ordered collection of properties.

Definition at line 9512 of file OpenMPClause.h.

Constructor & Destructor Documentation

◆ OMPTraitInfo()

OMPTraitInfo::OMPTraitInfo ( StringRef MangledName)

Reconstruct a (partial) OMPTraitInfo object from a mangled name.

Definition at line 2903 of file OpenMPClause.cpp.

References clang::Property, clang::Set, and Sets.

Member Function Documentation

◆ anyScoreOrCondition()

bool clang::OMPTraitInfo::anyScoreOrCondition ( llvm::function_ref< bool(Expr *&, bool)> Cond)
inline

◆ getAsVariantMatchInfo()

void OMPTraitInfo::getAsVariantMatchInfo ( ASTContext & ASTCtx,
llvm::omp::VariantMatchInfo & VMI ) const

Create a variant match info object from this trait info object.

While the former is a flat representation the actual main difference is that the latter uses clang::Expr to store the score/condition while the former is independent of clang. Thus, expressions and conditions are evaluated in this method.

Definition at line 2774 of file OpenMPClause.cpp.

References ASTContext, clang::Property, clang::Set, and Sets.

Referenced by clang::SemaOpenMP::ActOnOpenMPCall(), clang::SemaOpenMP::ActOnOpenMPDeclareVariantDirective(), and clang::Parser::ParseOpenMPDeclareBeginVariantDirective().

◆ getMangledName()

std::string OMPTraitInfo::getMangledName ( ) const

Return a string representation identifying this context selector.

Definition at line 2877 of file OpenMPClause.cpp.

References clang::Property, clang::Set, and Sets.

◆ isExtensionActive()

bool clang::OMPTraitInfo::isExtensionActive ( llvm::omp::TraitProperty TP)
inline

Check the extension trait TP is active.

Definition at line 9548 of file OpenMPClause.h.

References clang::Property, clang::Set, and Sets.

Referenced by clang::SemaOpenMP::ActOnStartOfFunctionDefinitionInOpenMPDeclareVariantScope().

◆ print()

void OMPTraitInfo::print ( llvm::raw_ostream & OS,
const PrintingPolicy & Policy ) const

Print a human readable representation into OS.

Definition at line 2824 of file OpenMPClause.cpp.

References clang::Property, clang::Set, and Sets.

Referenced by clang::operator<<().

◆ ASTContext

friend class ASTContext
friend

Definition at line 9515 of file OpenMPClause.h.

References ASTContext.

Referenced by ASTContext, and getAsVariantMatchInfo().

Member Data Documentation

◆ Sets


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