clang API Documentation

Classes | Namespaces | Defines | Typedefs | Functions
Type.cpp File Reference
#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"
Include dependency graph for Type.cpp:

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 TagDeclgetInterestingTagDecl (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

typedef TypePropertyCache<Private> Cache

Definition at line 2052 of file Type.cpp.


Function Documentation

static CachedProperties computeCachedProperties ( const Type T) [static]
static TagDecl* getInterestingTagDecl ( TagDecl decl) [static]