class OMPMapClause

Declaration

class OMPMapClause : public OMPMappableExprListClause,
                     private TrailingObjects { /* full declaration omitted */ };

Description

This represents clause 'map' in the '#pragma omp ...' directives. In this example directive '#pragma omp target' has clause 'map' with the variables 'a' and 'b'.

Declared at: clang/include/clang/AST/OpenMPClause.h:5712

Inherits from: OMPMappableExprListClause, TrailingObjects

Member Variables

private clang::OpenMPMapModifierKind[5] MapTypeModifiers = {OMPC_MAP_MODIFIER_unknown, OMPC_MAP_MODIFIER_unknown, OMPC_MAP_MODIFIER_unknown, OMPC_MAP_MODIFIER_unknown, OMPC_MAP_MODIFIER_unknown}
Map-type-modifiers for the 'map' clause.
private clang::SourceLocation[5] MapTypeModifiersLoc
Location of map-type-modifiers for the 'map' clause.
private clang::OpenMPMapClauseKind MapType = OMPC_MAP_unknown
Map type for the 'map' clause.
private bool MapTypeIsImplicit = false
Is this an implicit map type or not.
private clang::SourceLocation MapLoc
Location of the map type.
private clang::SourceLocation ColonLoc
Colon location.

Method Overview

  • public static clang::OMPMapClause * Create(const clang::ASTContext & C, const clang::OMPVarListLocTy & Locs, ArrayRef<clang::Expr *> Vars, ArrayRef<clang::ValueDecl *> Declarations, clang::OMPClauseMappableExprCommon::MappableExprComponentListsRef ComponentLists, ArrayRef<clang::Expr *> UDMapperRefs, ArrayRef<clang::OpenMPMapModifierKind> MapModifiers, ArrayRef<clang::SourceLocation> MapModifiersLoc, clang::NestedNameSpecifierLoc UDMQualifierLoc, clang::DeclarationNameInfo MapperId, clang::OpenMPMapClauseKind Type, bool TypeIsImplicit, clang::SourceLocation TypeLoc)
  • public static clang::OMPMapClause * CreateEmpty(const clang::ASTContext & C, const clang::OMPMappableExprListSizeTy & Sizes)
  • private OMPMapClause(ArrayRef<clang::OpenMPMapModifierKind> MapModifiers, ArrayRef<clang::SourceLocation> MapModifiersLoc, clang::NestedNameSpecifierLoc MapperQualifierLoc, clang::DeclarationNameInfo MapperIdInfo, clang::OpenMPMapClauseKind MapType, bool MapTypeIsImplicit, clang::SourceLocation MapLoc, const clang::OMPVarListLocTy & Locs, const clang::OMPMappableExprListSizeTy & Sizes)
  • private OMPMapClause(const clang::OMPMappableExprListSizeTy & Sizes)
  • public clang::OMPClause::const_child_range children() const
  • public clang::OMPClause::child_range children()
  • public static bool classof(const clang::OMPClause * T)
  • public clang::SourceLocation getColonLoc() const
  • public clang::SourceLocation getMapLoc() const
  • public clang::OpenMPMapClauseKind getMapType() const
  • public clang::OpenMPMapModifierKind getMapTypeModifier(unsigned int Cnt) const
  • public clang::SourceLocation getMapTypeModifierLoc(unsigned int Cnt) const
  • public ArrayRef<clang::OpenMPMapModifierKind> getMapTypeModifiers() const
  • public ArrayRef<clang::SourceLocation> getMapTypeModifiersLoc() const
  • public bool isImplicitMapType() const
  • private size_t numTrailingObjects(OverloadToken<clang::Expr *>) const
  • private size_t numTrailingObjects(OverloadToken<unsigned int>) const
  • private size_t numTrailingObjects(OverloadToken<clang::ValueDecl *>) const
  • private void setColonLoc(clang::SourceLocation Loc)
  • private void setMapLoc(clang::SourceLocation TLoc)
  • private void setMapType(clang::OpenMPMapClauseKind T)
  • private void setMapTypeModifier(unsigned int I, clang::OpenMPMapModifierKind T)
  • private void setMapTypeModifierLoc(unsigned int I, clang::SourceLocation TLoc)
  • public clang::OMPClause::child_range used_children()
  • public clang::OMPClause::const_child_range used_children() const

Methods

static clang::OMPMapClause* Create(
    const clang::ASTContext& C,
    const clang::OMPVarListLocTy& Locs,
    ArrayRef<clang::Expr*> Vars,
    ArrayRef<clang::ValueDecl*> Declarations,
    clang::OMPClauseMappableExprCommon::
        MappableExprComponentListsRef
            ComponentLists,
    ArrayRef<clang::Expr*> UDMapperRefs,
    ArrayRef<clang::OpenMPMapModifierKind>
        MapModifiers,
    ArrayRef<clang::SourceLocation>
        MapModifiersLoc,
    clang::NestedNameSpecifierLoc UDMQualifierLoc,
    clang::DeclarationNameInfo MapperId,
    clang::OpenMPMapClauseKind Type,
    bool TypeIsImplicit,
    clang::SourceLocation TypeLoc)

Description

Creates clause with a list of variables \a VL.

Declared at: clang/include/clang/AST/OpenMPClause.h:5863

Parameters

const clang::ASTContext& C
AST context.
const clang::OMPVarListLocTy& Locs
Locations needed to build a mappable clause. It includes 1) StartLoc: starting location of the clause (the clause keyword); 2) LParenLoc: location of '('; 3) EndLoc: ending location of the clause.
ArrayRef<clang::Expr*> Vars
The original expression used in the clause.
ArrayRef<clang::ValueDecl*> Declarations
Declarations used in the clause.
clang::OMPClauseMappableExprCommon:: MappableExprComponentListsRef ComponentLists
Component lists used in the clause.
ArrayRef<clang::Expr*> UDMapperRefs
References to user-defined mappers associated with expressions used in the clause.
ArrayRef<clang::OpenMPMapModifierKind> MapModifiers
Map-type-modifiers.
ArrayRef<clang::SourceLocation> MapModifiersLoc
Location of map-type-modifiers.
clang::NestedNameSpecifierLoc UDMQualifierLoc
C++ nested name specifier for the associated user-defined mapper.
clang::DeclarationNameInfo MapperId
The identifier of associated user-defined mapper.
clang::OpenMPMapClauseKind Type
Map type.
bool TypeIsImplicit
Map type is inferred implicitly.
clang::SourceLocation TypeLoc
Location of the map type.

static clang::OMPMapClause* CreateEmpty(
    const clang::ASTContext& C,
    const clang::OMPMappableExprListSizeTy& Sizes)

Description

Creates an empty clause with the place for \a NumVars original expressions, \a NumUniqueDeclarations declarations, \NumComponentListslists, and \a NumComponents expression components.

Declared at: clang/include/clang/AST/OpenMPClause.h:5882

Parameters

const clang::ASTContext& C
AST context.
const clang::OMPMappableExprListSizeTy& Sizes
All required sizes to build a mappable clause. It includes 1) NumVars: number of expressions listed in this clause; 2) NumUniqueDeclarations: number of unique base declarations in this clause; 3) NumComponentLists: number of component lists in this clause; and 4) NumComponents: total number of expression components in the clause.

OMPMapClause(
    ArrayRef<clang::OpenMPMapModifierKind>
        MapModifiers,
    ArrayRef<clang::SourceLocation>
        MapModifiersLoc,
    clang::NestedNameSpecifierLoc
        MapperQualifierLoc,
    clang::DeclarationNameInfo MapperIdInfo,
    clang::OpenMPMapClauseKind MapType,
    bool MapTypeIsImplicit,
    clang::SourceLocation MapLoc,
    const clang::OMPVarListLocTy& Locs,
    const clang::OMPMappableExprListSizeTy& Sizes)

Description

Build a clause for \a NumVars listed expressions, \a NumUniqueDeclarations declarations, \a NumComponentLists total component lists, and \a NumComponents total expression components.

Declared at: clang/include/clang/AST/OpenMPClause.h:5777

Parameters

ArrayRef<clang::OpenMPMapModifierKind> MapModifiers
Map-type-modifiers.
ArrayRef<clang::SourceLocation> MapModifiersLoc
Locations of map-type-modifiers.
clang::NestedNameSpecifierLoc MapperQualifierLoc
C++ nested name specifier for the associated user-defined mapper.
clang::DeclarationNameInfo MapperIdInfo
The identifier of associated user-defined mapper.
clang::OpenMPMapClauseKind MapType
Map type.
bool MapTypeIsImplicit
Map type is inferred implicitly.
clang::SourceLocation MapLoc
Location of the map type.
const clang::OMPVarListLocTy& Locs
Locations needed to build a mappable clause. It includes 1) StartLoc: starting location of the clause (the clause keyword); 2) LParenLoc: location of '('; 3) EndLoc: ending location of the clause.
const clang::OMPMappableExprListSizeTy& Sizes
All required sizes to build a mappable clause. It includes 1) NumVars: number of expressions listed in this clause; 2) NumUniqueDeclarations: number of unique base declarations in this clause; 3) NumComponentLists: number of component lists in this clause; and 4) NumComponents: total number of expression components in the clause.

OMPMapClause(
    const clang::OMPMappableExprListSizeTy& Sizes)

Description

Build an empty clause.

Declared at: clang/include/clang/AST/OpenMPClause.h:5805

Parameters

const clang::OMPMappableExprListSizeTy& Sizes
All required sizes to build a mappable clause. It includes 1) NumVars: number of expressions listed in this clause; 2) NumUniqueDeclarations: number of unique base declarations in this clause; 3) NumComponentLists: number of component lists in this clause; and 4) NumComponents: total number of expression components in the clause.

clang::OMPClause::const_child_range children()
    const

Declared at: clang/include/clang/AST/OpenMPClause.h:5936

clang::OMPClause::child_range children()

Declared at: clang/include/clang/AST/OpenMPClause.h:5930

static bool classof(const clang::OMPClause* T)

Declared at: clang/include/clang/AST/OpenMPClause.h:5953

Parameters

const clang::OMPClause* T

clang::SourceLocation getColonLoc() const

Description

Get colon location.

Declared at: clang/include/clang/AST/OpenMPClause.h:5928

clang::SourceLocation getMapLoc() const

Description

Fetches location of clause mapping kind.

Declared at: clang/include/clang/AST/OpenMPClause.h:5925

clang::OpenMPMapClauseKind getMapType() const

Description

Fetches mapping kind for the clause.

Declared at: clang/include/clang/AST/OpenMPClause.h:5886

clang::OpenMPMapModifierKind getMapTypeModifier(
    unsigned int Cnt) const

Description

Fetches the map-type-modifier at 'Cnt' index of array of modifiers.

Declared at: clang/include/clang/AST/OpenMPClause.h:5898

Parameters

unsigned int Cnt
index for map-type-modifier.

clang::SourceLocation getMapTypeModifierLoc(
    unsigned int Cnt) const

Description

Fetches the map-type-modifier location at 'Cnt' index of array of modifiers' locations.

Declared at: clang/include/clang/AST/OpenMPClause.h:5908

Parameters

unsigned int Cnt
index for map-type-modifier location.

ArrayRef<clang::OpenMPMapModifierKind>
getMapTypeModifiers() const

Description

Fetches ArrayRef of map-type-modifiers.

Declared at: clang/include/clang/AST/OpenMPClause.h:5915

ArrayRef<clang::SourceLocation>
getMapTypeModifiersLoc() const

Description

Fetches ArrayRef of location of map-type-modifiers.

Declared at: clang/include/clang/AST/OpenMPClause.h:5920

bool isImplicitMapType() const

Description

Is this an implicit map type? We have to capture 'IsMapTypeImplicit' from the parser for more informative error messages. It helps distinguish map(r) from map(tofrom: r), which is important to print more helpful error messages for some target directives.

Declared at: clang/include/clang/AST/OpenMPClause.h:5893

size_t numTrailingObjects(
    OverloadToken<clang::Expr*>) const

Description

Define the sizes of each trailing object array except the last one. This is required for TrailingObjects to work properly.

Declared at: clang/include/clang/AST/OpenMPClause.h:5723

Parameters

OverloadToken<clang::Expr*>

size_t numTrailingObjects(
    OverloadToken<unsigned int>) const

Declared at: clang/include/clang/AST/OpenMPClause.h:5731

Parameters

OverloadToken<unsigned int>

size_t numTrailingObjects(
    OverloadToken<clang::ValueDecl*>) const

Declared at: clang/include/clang/AST/OpenMPClause.h:5728

Parameters

OverloadToken<clang::ValueDecl*>

void setColonLoc(clang::SourceLocation Loc)

Description

Set colon location.

Declared at: clang/include/clang/AST/OpenMPClause.h:5840

Parameters

clang::SourceLocation Loc

void setMapLoc(clang::SourceLocation TLoc)

Description

Set type location.

Declared at: clang/include/clang/AST/OpenMPClause.h:5837

Parameters

clang::SourceLocation TLoc
Type location.

void setMapType(clang::OpenMPMapClauseKind T)

Description

Set type for the clause.

Declared at: clang/include/clang/AST/OpenMPClause.h:5832

Parameters

clang::OpenMPMapClauseKind T
Type for the clause.

void setMapTypeModifier(
    unsigned int I,
    clang::OpenMPMapModifierKind T)

Description

Set map-type-modifier for the clause.

Declared at: clang/include/clang/AST/OpenMPClause.h:5813

Parameters

unsigned int I
index for map-type-modifier.
clang::OpenMPMapModifierKind T
map-type-modifier for the clause.

void setMapTypeModifierLoc(
    unsigned int I,
    clang::SourceLocation TLoc)

Description

Set location for the map-type-modifier.

Declared at: clang/include/clang/AST/OpenMPClause.h:5823

Parameters

unsigned int I
index for map-type-modifier location.
clang::SourceLocation TLoc
map-type-modifier location.

clang::OMPClause::child_range used_children()

Declared at: clang/include/clang/AST/OpenMPClause.h:5941

clang::OMPClause::const_child_range
used_children() const

Declared at: clang/include/clang/AST/OpenMPClause.h:5947