clang 20.0.0git
Macros | Functions
TypePrinter.cpp File Reference
#include "clang/AST/ASTContext.h"
#include "clang/AST/Attr.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Expr.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/PrettyPrinter.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/TemplateName.h"
#include "clang/AST/TextNodeDumper.h"
#include "clang/AST/Type.h"
#include "clang/Basic/AddressSpaces.h"
#include "clang/Basic/ExceptionSpecificationType.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/Specifiers.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/SaveAndRestore.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <string>
#include "clang/AST/TypeNodes.inc"
#include "clang/Basic/TransformTypeTraits.def"
#include "clang/Basic/AttrList.inc"

Go to the source code of this file.

Macros

#define ABSTRACT_TYPE(CLASS, PARENT)
 
#define TYPE(CLASS, PARENT)
 
#define ABSTRACT_TYPE(CLASS, PARENT)
 
#define TYPE(CLASS, PARENT)
 
#define ABSTRACT_TYPE(CLASS, PARENT)
 
#define TYPE(CLASS, PARENT)
 
#define TRANSFORM_TYPE_TRAIT_DEF(Enum, Trait)    {UnaryTransformType::Enum, "__" #Trait},
 
#define TYPE_ATTR(NAME)
 
#define DECL_OR_TYPE_ATTR(NAME)
 
#define ATTR(NAME)   case attr::NAME:
 

Functions

static void AppendTypeQualList (raw_ostream &OS, unsigned TypeQuals, bool HasRestrictKeyword)
 
static SplitQualType splitAccordingToPolicy (QualType QT, const PrintingPolicy &Policy)
 
static QualType skipTopLevelReferences (QualType T)
 
static void printCountAttributedImpl (const CountAttributedType *T, raw_ostream &OS, const PrintingPolicy &Policy)
 
static const TemplateArgumentgetArgument (const TemplateArgument &A)
 
static const TemplateArgumentgetArgument (const TemplateArgumentLoc &A)
 
static void printArgument (const TemplateArgument &A, const PrintingPolicy &PP, llvm::raw_ostream &OS, bool IncludeType)
 
static void printArgument (const TemplateArgumentLoc &A, const PrintingPolicy &PP, llvm::raw_ostream &OS, bool IncludeType)
 
static bool isSubstitutedTemplateArgument (ASTContext &Ctx, TemplateArgument Arg, TemplateArgument Pattern, ArrayRef< TemplateArgument > Args, unsigned Depth)
 
static bool isSubstitutedType (ASTContext &Ctx, QualType T, QualType Pattern, ArrayRef< TemplateArgument > Args, unsigned Depth)
 
static bool templateArgumentExpressionsEqual (ASTContext const &Ctx, TemplateArgument const &Pattern, TemplateArgument const &Arg)
 Evaluates the expression template argument 'Pattern' and returns true if 'Arg' evaluates to the same result.
 
template<typename TA >
static void printTo (raw_ostream &OS, ArrayRef< TA > Args, const PrintingPolicy &Policy, const TemplateParameterList *TPL, bool IsPack, unsigned ParmIndex)
 

Macro Definition Documentation

◆ ABSTRACT_TYPE [1/3]

#define ABSTRACT_TYPE (   CLASS,
  PARENT 
)

Definition at line 139 of file TypePrinter.cpp.

◆ ABSTRACT_TYPE [2/3]

#define ABSTRACT_TYPE (   CLASS,
  PARENT 
)

Definition at line 139 of file TypePrinter.cpp.

◆ ABSTRACT_TYPE [3/3]

#define ABSTRACT_TYPE (   CLASS,
  PARENT 
)

Definition at line 139 of file TypePrinter.cpp.

◆ ATTR

#define ATTR (   NAME)    case attr::NAME:

◆ DECL_OR_TYPE_ATTR

#define DECL_OR_TYPE_ATTR (   NAME)

◆ TRANSFORM_TYPE_TRAIT_DEF

#define TRANSFORM_TYPE_TRAIT_DEF (   Enum,
  Trait 
)     {UnaryTransformType::Enum, "__" #Trait},

◆ TYPE [1/3]

#define TYPE (   CLASS,
  PARENT 
)
Value:
void print##CLASS##Before(const CLASS##Type *T, raw_ostream &OS); \
void print##CLASS##After(const CLASS##Type *T, raw_ostream &OS);
static void print(llvm::raw_ostream &OS, const T &V, ASTContext &ASTCtx, QualType Ty)
The base class of the type hierarchy.
Definition: Type.h:1829
const FunctionProtoType * T

Definition at line 140 of file TypePrinter.cpp.

◆ TYPE [2/3]

#define TYPE (   CLASS,
  PARENT 
)
Value:
case Type::CLASS: \
print##CLASS##Before(cast<CLASS##Type>(T), OS); \
break;

Definition at line 140 of file TypePrinter.cpp.

◆ TYPE [3/3]

#define TYPE (   CLASS,
  PARENT 
)
Value:
case Type::CLASS: \
print##CLASS##After(cast<CLASS##Type>(T), OS); \
break;

Definition at line 140 of file TypePrinter.cpp.

◆ TYPE_ATTR

#define TYPE_ATTR (   NAME)

Function Documentation

◆ AppendTypeQualList()

static void AppendTypeQualList ( raw_ostream &  OS,
unsigned  TypeQuals,
bool  HasRestrictKeyword 
)
static

◆ getArgument() [1/2]

static const TemplateArgument & getArgument ( const TemplateArgument A)
static

◆ getArgument() [2/2]

static const TemplateArgument & getArgument ( const TemplateArgumentLoc A)
static

Definition at line 2149 of file TypePrinter.cpp.

References clang::TemplateArgumentLoc::getArgument().

◆ isSubstitutedTemplateArgument()

static bool isSubstitutedTemplateArgument ( ASTContext Ctx,
TemplateArgument  Arg,
TemplateArgument  Pattern,
ArrayRef< TemplateArgument Args,
unsigned  Depth 
)
static

◆ isSubstitutedType()

static bool isSubstitutedType ( ASTContext Ctx,
QualType  T,
QualType  Pattern,
ArrayRef< TemplateArgument Args,
unsigned  Depth 
)
static

◆ printArgument() [1/2]

static void printArgument ( const TemplateArgument A,
const PrintingPolicy PP,
llvm::raw_ostream &  OS,
bool  IncludeType 
)
static

Definition at line 2153 of file TypePrinter.cpp.

References clang::TemplateArgument::print().

Referenced by printTo().

◆ printArgument() [2/2]

static void printArgument ( const TemplateArgumentLoc A,
const PrintingPolicy PP,
llvm::raw_ostream &  OS,
bool  IncludeType 
)
static

◆ printCountAttributedImpl()

static void printCountAttributedImpl ( const CountAttributedType T,
raw_ostream &  OS,
const PrintingPolicy Policy 
)
static

Definition at line 1781 of file TypePrinter.cpp.

References clang::T.

◆ printTo()

template<typename TA >
static void printTo ( raw_ostream &  OS,
ArrayRef< TA >  Args,
const PrintingPolicy Policy,
const TemplateParameterList TPL,
bool  IsPack,
unsigned  ParmIndex 
)
static

◆ skipTopLevelReferences()

static QualType skipTopLevelReferences ( QualType  T)
static

Definition at line 440 of file TypePrinter.cpp.

References clang::Type::getAs(), skipTopLevelReferences(), and clang::T.

Referenced by skipTopLevelReferences().

◆ splitAccordingToPolicy()

static SplitQualType splitAccordingToPolicy ( QualType  QT,
const PrintingPolicy Policy 
)
static

◆ templateArgumentExpressionsEqual()

static bool templateArgumentExpressionsEqual ( ASTContext const &  Ctx,
TemplateArgument const &  Pattern,
TemplateArgument const &  Arg 
)
static