class ExtVectorElementExpr

Declaration

class ExtVectorElementExpr : public Expr { /* full declaration omitted */ };

Description

ExtVectorElementExpr - This represents access to specific elements of a vector, and may occur on the left hand side or right hand side. For example the following is legal: "V.xy = V.zw" if V is a 4 element extended vector. Note that the base may have either vector or pointer to vector type, just like a struct field reference.

Declared at: clang/include/clang/AST/Expr.h:5910

Inherits from: Expr

Member Variables

private clang::Stmt* Base
private clang::IdentifierInfo* Accessor
private clang::SourceLocation AccessorLoc

Inherited from Stmt:

protected

Method Overview

Inherited from Expr:

Inherited from ValueStmt:

Inherited from Stmt:

Methods

ExtVectorElementExpr(
    clang::Stmt::EmptyShell Empty)

Description

Build an empty vector element expression.

Declared at: clang/include/clang/AST/Expr.h:5924

Parameters

clang::Stmt::EmptyShell Empty

ExtVectorElementExpr(
    clang::QualType ty,
    clang::ExprValueKind VK,
    clang::Expr* base,
    clang::IdentifierInfo& accessor,
    clang::SourceLocation loc)

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

Parameters

clang::QualType ty
clang::ExprValueKind VK
clang::Expr* base
clang::IdentifierInfo& accessor
clang::SourceLocation loc

clang::Stmt::const_child_range children() const

Declared at: clang/include/clang/AST/Expr.h:5963

clang::Stmt::child_range children()

Declared at: clang/include/clang/AST/Expr.h:5962

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

Declared at: clang/include/clang/AST/Expr.h:5957

Parameters

const clang::Stmt* T

bool containsDuplicateElements() const

Description

containsDuplicateElements - Return true if any element access is repeated.

Declared at: clang/include/clang/AST/Expr.h:5942

clang::IdentifierInfo& getAccessor() const

Declared at: clang/include/clang/AST/Expr.h:5931

clang::SourceLocation getAccessorLoc() const

Declared at: clang/include/clang/AST/Expr.h:5934

clang::Expr* getBase()

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

const clang::Expr* getBase() const

Declared at: clang/include/clang/AST/Expr.h:5927

clang::SourceLocation getBeginLoc() const

Declared at: clang/include/clang/AST/Expr.h:5948

void getEncodedElementAccess(
    SmallVectorImpl<uint32_t>& Elts) const

Description

getEncodedElementAccess - Encode the elements accessed into an llvm aggregate Constant of ConstantInt(s).

Declared at: clang/include/clang/AST/Expr.h:5946

Parameters

SmallVectorImpl<uint32_t>& Elts

clang::SourceLocation getEndLoc() const

Declared at: clang/include/clang/AST/Expr.h:5951

unsigned int getNumElements() const

Description

getNumElements - Get the number of components being selected.

Declared at: clang/include/clang/AST/Expr.h:5938

bool isArrow() const

Description

isArrow - Return true if the base expression is a pointer to vector, return false if the base expression is a vector.

Declared at: clang/include/clang/AST/Expr.h:5955

void setAccessor(clang::IdentifierInfo* II)

Declared at: clang/include/clang/AST/Expr.h:5932

Parameters

clang::IdentifierInfo* II

void setAccessorLoc(clang::SourceLocation L)

Declared at: clang/include/clang/AST/Expr.h:5935

Parameters

clang::SourceLocation L

void setBase(clang::Expr* E)

Declared at: clang/include/clang/AST/Expr.h:5929

Parameters

clang::Expr* E