clang 20.0.0git
|
#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 TemplateArgument & | getArgument (const TemplateArgument &A) |
static const TemplateArgument & | getArgument (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) |
#define ABSTRACT_TYPE | ( | CLASS, | |
PARENT | |||
) |
Definition at line 139 of file TypePrinter.cpp.
#define ABSTRACT_TYPE | ( | CLASS, | |
PARENT | |||
) |
Definition at line 139 of file TypePrinter.cpp.
#define ABSTRACT_TYPE | ( | CLASS, | |
PARENT | |||
) |
Definition at line 139 of file TypePrinter.cpp.
#define ATTR | ( | NAME | ) | case attr::NAME: |
#define DECL_OR_TYPE_ATTR | ( | NAME | ) |
#define TRANSFORM_TYPE_TRAIT_DEF | ( | Enum, | |
Trait | |||
) | {UnaryTransformType::Enum, "__" #Trait}, |
#define TYPE | ( | CLASS, | |
PARENT | |||
) |
Definition at line 140 of file TypePrinter.cpp.
#define TYPE | ( | CLASS, | |
PARENT | |||
) |
Definition at line 140 of file TypePrinter.cpp.
#define TYPE | ( | CLASS, | |
PARENT | |||
) |
Definition at line 140 of file TypePrinter.cpp.
#define TYPE_ATTR | ( | NAME | ) |
|
static |
Definition at line 152 of file TypePrinter.cpp.
References clang::Qualifiers::Const, clang::Qualifiers::Restrict, and clang::Qualifiers::Volatile.
Referenced by clang::Qualifiers::print().
|
static |
Definition at line 2147 of file TypePrinter.cpp.
Referenced by clang::Sema::CheckTemplateArgumentList(), clang::ASTContext::getDependentTemplateSpecializationType(), clang::AtomicConstraint::hasMatchingParameterMapping(), and printTo().
|
static |
Definition at line 2149 of file TypePrinter.cpp.
References clang::TemplateArgumentLoc::getArgument().
|
static |
Definition at line 2268 of file TypePrinter.cpp.
References clang::TemplateArgument::Expression, clang::TemplateArgument::getAsExpr(), clang::TemplateArgument::getAsTemplate(), clang::TemplateName::getAsTemplateDecl(), clang::TemplateArgument::getAsType(), clang::ASTContext::getCanonicalTemplateArgument(), clang::TemplateArgument::getKind(), clang::Expr::IgnoreParenImpCasts(), isSubstitutedType(), clang::TemplateArgument::structurallyEquals(), clang::TemplateArgument::Template, templateArgumentExpressionsEqual(), and clang::TemplateArgument::Type.
Referenced by clang::isSubstitutedDefaultArgument(), and isSubstitutedType().
|
static |
Definition at line 2172 of file TypePrinter.cpp.
References clang::Type::getAs(), clang::Type::getAsCXXRecordDecl(), clang::QualType::getCanonicalType(), clang::Type::getPointeeType(), clang::ASTContext::getQualifiedType(), clang::QualType::getQualifiers(), clang::Type::getTypeClass(), clang::ASTContext::getUnqualifiedArrayType(), clang::ASTContext::hasSameType(), clang::QualType::isNull(), isSubstitutedTemplateArgument(), isSubstitutedType(), clang::T, and clang::TemplateArgument::Type.
Referenced by isSubstitutedTemplateArgument(), and isSubstitutedType().
|
static |
Definition at line 2153 of file TypePrinter.cpp.
References clang::TemplateArgument::print().
Referenced by printTo().
|
static |
Definition at line 2158 of file TypePrinter.cpp.
References clang::TemplateArgumentLoc::getArgument(), clang::TemplateArgument::getKind(), clang::TypeSourceInfo::getType(), clang::TemplateArgumentLoc::getTypeSourceInfo(), clang::TemplateArgument::print(), clang::QualType::print(), and clang::TemplateArgument::Type.
|
static |
Definition at line 1781 of file TypePrinter.cpp.
References clang::T.
|
static |
Definition at line 2335 of file TypePrinter.cpp.
References getArgument(), clang::TemplateArgument::getIsDefaulted(), clang::TemplateArgument::getKind(), clang::TemplateArgument::getPackAsArray(), clang::PrintingPolicy::MSVCFormatting, clang::TemplateArgument::Pack, clang::TemplateArgument::pack_size(), printArgument(), clang::PrintingPolicy::PrintCanonicalTypes, printTo(), clang::TemplateParameterList::shouldIncludeTypeForArgument(), clang::TemplateParameterList::size(), clang::PrintingPolicy::SplitTemplateClosers, and clang::PrintingPolicy::SuppressDefaultTemplateArgs.
Referenced by clang::printTemplateArgumentList(), and printTo().
Definition at line 440 of file TypePrinter.cpp.
References clang::Type::getAs(), skipTopLevelReferences(), and clang::T.
Referenced by skipTopLevelReferences().
|
static |
Definition at line 179 of file TypePrinter.cpp.
References clang::QualType::getCanonicalType(), clang::PrintingPolicy::PrintCanonicalTypes, and clang::QualType::split().
Referenced by clang::QualType::getAsStringInternal(), and clang::QualType::print().
|
static |
Evaluates the expression template argument 'Pattern' and returns true if 'Arg' evaluates to the same result.
Definition at line 2240 of file TypePrinter.cpp.
References clang::Expr::EvaluateKnownConstInt(), clang::TemplateArgument::Expression, clang::TemplateArgument::getAsExpr(), clang::TemplateArgument::getAsIntegral(), clang::TemplateArgument::getKind(), clang::TemplateArgument::Integral, clang::Expr::isIntegerConstantExpr(), and clang::Expr::isValueDependent().
Referenced by isSubstitutedTemplateArgument().