#include "clang/AST/ASTContext.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/Type.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Expr.h"
#include "clang/AST/PrettyPrinter.h"
#include "clang/AST/TypeVisitor.h"
#include "clang/Basic/PartialDiagnostic.h"
#include "clang/Basic/Specifiers.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include "clang/AST/TypeNodes.def"
Go to the source code of this file.
Classes |
| class | clang::TypePropertyCache< Private > |
Namespaces |
| namespace | clang |
Defines |
| #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 | ABSTRACT_TYPE(Class, Parent) |
| #define | TYPE(Class, Parent) |
| #define | ABSTRACT_TYPE(Derived, Base) |
| #define | TYPE(Derived, Base) case Derived: return #Derived; |
| #define | TYPE(Class, Base) |
| #define | NON_CANONICAL_TYPE(Class, Base) case Type::Class: |
| #define | TYPE(Class, Base) |
| #define | DEPENDENT_TYPE(Class, Base) case Type::Class: |
| #define | NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base) case Type::Class: |
Typedefs |
typedef TypePropertyCache
< Private > | Cache |
Functions |
| static TagDecl * | getInterestingTagDecl (TagDecl *decl) |
| static CachedProperties | computeCachedProperties (const Type *T) |
Define Documentation
| #define ABSTRACT_TYPE |
( |
|
Class, |
|
|
|
Parent |
|
) |
| |
| #define ABSTRACT_TYPE |
( |
|
Class, |
|
|
|
Parent |
|
) |
| |
| #define ABSTRACT_TYPE |
( |
|
Class, |
|
|
|
Parent |
|
) |
| |
| #define ABSTRACT_TYPE |
( |
|
Class, |
|
|
|
Parent |
|
) |
| |
| #define ABSTRACT_TYPE |
( |
|
Derived, |
|
|
|
Base |
|
) |
| |
| #define DEPENDENT_TYPE |
( |
|
Class, |
|
|
|
Base |
|
) |
| case Type::Class: |
| #define NON_CANONICAL_TYPE |
( |
|
Class, |
|
|
|
Base |
|
) |
| case Type::Class: |
| #define NON_CANONICAL_UNLESS_DEPENDENT_TYPE |
( |
|
Class, |
|
|
|
Base |
|
) |
| case Type::Class: |
| #define TYPE |
( |
|
Class, |
|
|
|
Parent |
|
) |
| |
Value:case Type::Class: { \
const Class##Type *Ty = cast<Class##Type>(CurTy); \
if (!Ty->isSugared()) \
return *this; \
return Context.getQualifiedType(Ty->desugar(), Qs); \
break; \
}
| #define TYPE |
( |
|
Class, |
|
|
|
Parent |
|
) |
| |
Value:case Type::Class: { \
const Class##Type *Ty = cast<Class##Type>(CurTy); \
if (!Ty->isSugared()) \
return SplitQualType(Ty, Qs); \
Cur = Ty->desugar(); \
break; \
}
| #define TYPE |
( |
|
Class, |
|
|
|
Parent |
|
) |
| |
Value:case Type::Class: { \
const Class##Type *ty = cast<Class##Type>(split.first); \
if (!ty->isSugared()) goto done; \
next = ty->desugar(); \
break; \
}
| #define TYPE |
( |
|
Class, |
|
|
|
Parent |
|
) |
| |
Value:case Class: { \
const Class##Type *Ty = cast<Class##Type>(Cur); \
if (!Ty->isSugared()) return Cur; \
Cur = Ty->desugar().getTypePtr(); \
break; \
}
| #define TYPE |
( |
|
Derived, |
|
|
|
Base |
|
) |
| case Derived: return #Derived; |
| #define TYPE |
( |
|
Class, |
|
|
|
Base |
|
) |
| |
| #define TYPE |
( |
|
Class, |
|
|
|
Base |
|
) |
| |
Typedef Documentation
Function Documentation
| static CachedProperties computeCachedProperties |
( |
const Type * |
T | ) |
[static] |
Definition at line 2054 of file Type.cpp.
References clang::FunctionProtoType::arg_type_begin(), clang::FunctionProtoType::arg_type_end(), clang::DefaultVisibility, clang::TypePropertyCache< Private >::get(), clang::MemberPointerType::getClass(), clang::Decl::getDeclContext(), getElementType(), clang::NamedDecl::getIdentifier(), clang::NamedDecl::getLinkageAndVisibility(), clang::MemberPointerType::getPointeeType(), clang::FunctionType::getResultType(), clang::Type::getTypeClass(), clang::TagDecl::getTypedefNameForAnonDecl(), clang::DeclContext::isFunctionOrMethod(), clang::Type::isInstantiationDependentType(), and clang::NoLinkage.
Referenced by clang::TypePropertyCache< Private >::ensure().