clang 19.0.0git
Macros | Functions | Variables
TypeLoc.cpp File Reference
#include "clang/AST/TypeLoc.h"
#include "clang/AST/ASTConcept.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Attr.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Expr.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/TemplateName.h"
#include "clang/AST/TypeLocVisitor.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/Specifiers.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <cstring>
#include "clang/AST/TypeLocNodes.def"
#include "clang/Basic/OpenCLImageTypes.def"
#include "clang/Basic/OpenCLExtensionTypes.def"
#include "clang/Basic/AArch64SVEACLETypes.def"
#include "clang/Basic/PPCTypes.def"
#include "clang/Basic/RISCVVTypes.def"
#include "clang/Basic/WebAssemblyReferenceTypes.def"

Go to the source code of this file.

Macros

#define ABSTRACT_TYPELOC(CLASS, PARENT)
 
#define TYPELOC(CLASS, PARENT)
 
#define ABSTRACT_TYPELOC(CLASS, PARENT)
 
#define TYPELOC(CLASS, PARENT)
 
#define ABSTRACT_TYPELOC(CLASS, PARENT)
 
#define TYPELOC(CLASS, PARENT)
 
#define ABSTRACT_TYPELOC(CLASS, PARENT)
 
#define TYPELOC(CLASS, PARENT)
 
#define ABSTRACT_TYPELOC(CLASS, PARENT)
 
#define TYPELOC(CLASS, PARENT)
 
#define ABSTRACT_TYPELOC(CLASS, PARENT)
 
#define TYPELOC(CLASS, PARENT)
 
#define ABSTRACT_TYPELOC(CLASS, PARENT)
 
#define TYPELOC(CLASS, PARENT)
 
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix)    case BuiltinType::Id:
 
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext)    case BuiltinType::Id:
 
#define SVE_TYPE(Name, Id, SingletonId)    case BuiltinType::Id:
 
#define PPC_VECTOR_TYPE(Name, Id, Size)    case BuiltinType::Id:
 
#define RVV_TYPE(Name, Id, SingletonId)   case BuiltinType::Id:
 
#define WASM_TYPE(Name, Id, SingletonId)   case BuiltinType::Id:
 

Functions

static ConceptReferencecreateTrivialConceptReference (ASTContext &Context, SourceLocation Loc, const AutoType *AT)
 

Variables

static const unsigned TypeLocMaxDataAlign = alignof(void *)
 

Macro Definition Documentation

◆ ABSTRACT_TYPELOC [1/7]

#define ABSTRACT_TYPELOC (   CLASS,
  PARENT 
)

Definition at line 291 of file TypeLoc.cpp.

◆ ABSTRACT_TYPELOC [2/7]

#define ABSTRACT_TYPELOC (   CLASS,
  PARENT 
)

Definition at line 291 of file TypeLoc.cpp.

◆ ABSTRACT_TYPELOC [3/7]

#define ABSTRACT_TYPELOC (   CLASS,
  PARENT 
)

Definition at line 291 of file TypeLoc.cpp.

◆ ABSTRACT_TYPELOC [4/7]

#define ABSTRACT_TYPELOC (   CLASS,
  PARENT 
)

Definition at line 291 of file TypeLoc.cpp.

◆ ABSTRACT_TYPELOC [5/7]

#define ABSTRACT_TYPELOC (   CLASS,
  PARENT 
)

Definition at line 291 of file TypeLoc.cpp.

◆ ABSTRACT_TYPELOC [6/7]

#define ABSTRACT_TYPELOC (   CLASS,
  PARENT 
)

Definition at line 291 of file TypeLoc.cpp.

◆ ABSTRACT_TYPELOC [7/7]

#define ABSTRACT_TYPELOC (   CLASS,
  PARENT 
)

Definition at line 291 of file TypeLoc.cpp.

◆ EXT_OPAQUE_TYPE

#define EXT_OPAQUE_TYPE (   ExtType,
  Id,
  Ext 
)     case BuiltinType::Id:

◆ IMAGE_TYPE

#define IMAGE_TYPE (   ImgType,
  Id,
  SingletonId,
  Access,
  Suffix 
)     case BuiltinType::Id:

◆ PPC_VECTOR_TYPE

#define PPC_VECTOR_TYPE (   Name,
  Id,
  Size 
)     case BuiltinType::Id:

◆ RVV_TYPE

#define RVV_TYPE (   Name,
  Id,
  SingletonId 
)    case BuiltinType::Id:

◆ SVE_TYPE

#define SVE_TYPE (   Name,
  Id,
  SingletonId 
)     case BuiltinType::Id:

◆ TYPELOC [1/7]

#define TYPELOC (   CLASS,
  PARENT 
)
Value:
SourceRange Visit##CLASS##TypeLoc(CLASS##TypeLoc TyLoc) { \
return TyLoc.getLocalSourceRange(); \
}
A trivial tuple used to represent a source range.
Base wrapper for a particular "section" of type source info.
Definition: TypeLoc.h:59
SourceRange getLocalSourceRange() const
Get the local source range.
Definition: TypeLoc.h:159

Definition at line 292 of file TypeLoc.cpp.

◆ TYPELOC [2/7]

#define TYPELOC (   CLASS,
  PARENT 
)
Value:
unsigned Visit##CLASS##TypeLoc(CLASS##TypeLoc TyLoc) { \
return TyLoc.getLocalDataAlignment(); \
}

Definition at line 292 of file TypeLoc.cpp.

◆ TYPELOC [3/7]

#define TYPELOC (   CLASS,
  PARENT 
)
Value:
unsigned Visit##CLASS##TypeLoc(CLASS##TypeLoc TyLoc) { \
return TyLoc.getLocalDataSize(); \
}

Definition at line 292 of file TypeLoc.cpp.

◆ TYPELOC [4/7]

#define TYPELOC (   CLASS,
  PARENT 
)
Value:
TypeLoc Visit##CLASS##TypeLoc(CLASS##TypeLoc TyLoc) { \
return TyLoc.getNextTypeLoc(); \
}
TypeLoc getNextTypeLoc() const
Get the next TypeLoc pointed by this TypeLoc, e.g for "int*" the TypeLoc is a PointerLoc and next Typ...
Definition: TypeLoc.h:170

Definition at line 292 of file TypeLoc.cpp.

◆ TYPELOC [5/7]

#define TYPELOC (   CLASS,
  PARENT 
)
Value:
case CLASS: { \
CLASS##TypeLoc TLCasted = TL.castAs<CLASS##TypeLoc>(); \
TLCasted.initializeLocal(Context, Loc); \
TL = TLCasted.getNextTypeLoc(); \
if (!TL) return; \
continue; \
}
T castAs() const
Convert to the specified TypeLoc type, asserting that this TypeLoc is of the desired type.
Definition: TypeLoc.h:78

Definition at line 292 of file TypeLoc.cpp.

◆ TYPELOC [6/7]

#define TYPELOC (   CLASS,
  PARENT 
)
Value:
void Visit##CLASS##TypeLoc(CLASS##TypeLoc dest) { \
dest.copyLocal(Source.castAs<CLASS##TypeLoc>()); \
}

Definition at line 292 of file TypeLoc.cpp.

◆ TYPELOC [7/7]

#define TYPELOC (   CLASS,
  PARENT 
)
Value:
bool Visit##CLASS##TypeLoc(CLASS##TypeLoc TyLoc) { \
return isTypeSpec(TyLoc); \
}

Definition at line 292 of file TypeLoc.cpp.

◆ WASM_TYPE

#define WASM_TYPE (   Name,
  Id,
  SingletonId 
)    case BuiltinType::Id:

Function Documentation

◆ createTrivialConceptReference()

static ConceptReference * createTrivialConceptReference ( ASTContext Context,
SourceLocation  Loc,
const AutoType AT 
)
static

Variable Documentation

◆ TypeLocMaxDataAlign

const unsigned TypeLocMaxDataAlign = alignof(void *)
static

Definition at line 34 of file TypeLoc.cpp.

Referenced by clang::TypeLoc::copy().