clang API Documentation

Public Types | Public Member Functions
clang::OffsetOfExpr::OffsetOfNode Class Reference

#include <Expr.h>

List of all members.

Public Types

enum  Kind { Array = 0x00, Field = 0x01, Identifier = 0x02, Base = 0x03 }
 The kind of offsetof node we have. More...

Public Member Functions

 OffsetOfNode (SourceLocation LBracketLoc, unsigned Index, SourceLocation RBracketLoc)
 Create an offsetof node that refers to an array element.
 OffsetOfNode (SourceLocation DotLoc, FieldDecl *Field, SourceLocation NameLoc)
 Create an offsetof node that refers to a field.
 OffsetOfNode (SourceLocation DotLoc, IdentifierInfo *Name, SourceLocation NameLoc)
 Create an offsetof node that refers to an identifier.
 OffsetOfNode (const CXXBaseSpecifier *Base)
 Create an offsetof node that refers into a C++ base class.
Kind getKind () const
 Determine what kind of offsetof node this is.
unsigned getArrayExprIndex () const
 For an array element node, returns the index into the array of expressions.
FieldDeclgetField () const
 For a field offsetof node, returns the field.
IdentifierInfogetFieldName () const
 For a field or identifier offsetof node, returns the name of the field.
CXXBaseSpecifiergetBase () const
 For a base class node, returns the base specifier.
SourceRange getSourceRange () const LLVM_READONLY
 Retrieve the source range that covers this offsetof node.
SourceLocation getLocStart () const LLVM_READONLY
SourceLocation getLocEnd () const LLVM_READONLY

Detailed Description

Definition at line 1779 of file Expr.h.


Member Enumeration Documentation

The kind of offsetof node we have.

Enumerator:
Array 

An index into an array.

Field 

A field.

Identifier 

A field in a dependent type, known only by its name.

Base 

An implicit indirection through a C++ base class, when the field found is in a base class.

Definition at line 1782 of file Expr.h.


Constructor & Destructor Documentation

clang::OffsetOfExpr::OffsetOfNode::OffsetOfNode ( SourceLocation  LBracketLoc,
unsigned  Index,
SourceLocation  RBracketLoc 
) [inline]

Create an offsetof node that refers to an array element.

Definition at line 1813 of file Expr.h.

Create an offsetof node that refers to a field.

Definition at line 1818 of file Expr.h.

Create an offsetof node that refers to an identifier.

Definition at line 1824 of file Expr.h.

Create an offsetof node that refers into a C++ base class.

Definition at line 1830 of file Expr.h.


Member Function Documentation

For an array element node, returns the index into the array of expressions.

Definition at line 1840 of file Expr.h.

References Array, and getKind().

For a base class node, returns the base specifier.

Definition at line 1856 of file Expr.h.

References getKind().

For a field offsetof node, returns the field.

Definition at line 1846 of file Expr.h.

References Field, and getKind().

Referenced by getFieldName().

For a field or identifier offsetof node, returns the name of the field.

Definition at line 1354 of file Expr.cpp.

References Field, getField(), clang::NamedDecl::getIdentifier(), getKind(), and Identifier.

Determine what kind of offsetof node this is.

Definition at line 1834 of file Expr.h.

Referenced by getArrayExprIndex(), getBase(), getField(), and getFieldName().

Definition at line 1869 of file Expr.h.

References clang::SourceRange::getEnd().

Definition at line 1868 of file Expr.h.

References clang::SourceRange::getBegin().

Retrieve the source range that covers this offsetof node.

For an array element node, the source range contains the locations of the square brackets. For a field or identifier node, the source range contains the location of the period (if there is one) and the identifier.

Definition at line 1867 of file Expr.h.


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