#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DependenceFlags.h"
#include "clang/AST/PrettyPrinter.h"
#include "clang/AST/TemplateName.h"
#include "clang/AST/Type.h"
#include "clang/AST/TypeLoc.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/SourceLocation.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstdlib>
#include <cstring>
usingnamespaceclang;
NestedNameSpecifier *
NestedNameSpecifier::FindOrInsert(const ASTContext &Context,
const NestedNameSpecifier &Mockup) { … }
NestedNameSpecifier *NestedNameSpecifier::Create(const ASTContext &Context,
NestedNameSpecifier *Prefix,
const IdentifierInfo *II) { … }
NestedNameSpecifier *
NestedNameSpecifier::Create(const ASTContext &Context,
NestedNameSpecifier *Prefix,
const NamespaceDecl *NS) { … }
NestedNameSpecifier *
NestedNameSpecifier::Create(const ASTContext &Context,
NestedNameSpecifier *Prefix,
const NamespaceAliasDecl *Alias) { … }
NestedNameSpecifier *
NestedNameSpecifier::Create(const ASTContext &Context,
NestedNameSpecifier *Prefix,
bool Template, const Type *T) { … }
NestedNameSpecifier *NestedNameSpecifier::Create(const ASTContext &Context,
const IdentifierInfo *II) { … }
NestedNameSpecifier *
NestedNameSpecifier::GlobalSpecifier(const ASTContext &Context) { … }
NestedNameSpecifier *
NestedNameSpecifier::SuperSpecifier(const ASTContext &Context,
CXXRecordDecl *RD) { … }
NestedNameSpecifier::SpecifierKind NestedNameSpecifier::getKind() const { … }
NamespaceDecl *NestedNameSpecifier::getAsNamespace() const { … }
NamespaceAliasDecl *NestedNameSpecifier::getAsNamespaceAlias() const { … }
CXXRecordDecl *NestedNameSpecifier::getAsRecordDecl() const { … }
NestedNameSpecifierDependence NestedNameSpecifier::getDependence() const { … }
bool NestedNameSpecifier::isDependent() const { … }
bool NestedNameSpecifier::isInstantiationDependent() const { … }
bool NestedNameSpecifier::containsUnexpandedParameterPack() const { … }
bool NestedNameSpecifier::containsErrors() const { … }
void NestedNameSpecifier::print(raw_ostream &OS, const PrintingPolicy &Policy,
bool ResolveTemplateArguments) const { … }
LLVM_DUMP_METHOD void NestedNameSpecifier::dump(const LangOptions &LO) const { … }
LLVM_DUMP_METHOD void NestedNameSpecifier::dump() const { … }
LLVM_DUMP_METHOD void NestedNameSpecifier::dump(llvm::raw_ostream &OS) const { … }
LLVM_DUMP_METHOD void NestedNameSpecifier::dump(llvm::raw_ostream &OS,
const LangOptions &LO) const { … }
unsigned
NestedNameSpecifierLoc::getLocalDataLength(NestedNameSpecifier *Qualifier) { … }
unsigned
NestedNameSpecifierLoc::getDataLength(NestedNameSpecifier *Qualifier) { … }
static SourceLocation LoadSourceLocation(void *Data, unsigned Offset) { … }
static void *LoadPointer(void *Data, unsigned Offset) { … }
SourceRange NestedNameSpecifierLoc::getSourceRange() const { … }
SourceRange NestedNameSpecifierLoc::getLocalSourceRange() const { … }
TypeLoc NestedNameSpecifierLoc::getTypeLoc() const { … }
static void Append(char *Start, char *End, char *&Buffer, unsigned &BufferSize,
unsigned &BufferCapacity) { … }
static void SaveSourceLocation(SourceLocation Loc, char *&Buffer,
unsigned &BufferSize, unsigned &BufferCapacity) { … }
static void SavePointer(void *Ptr, char *&Buffer, unsigned &BufferSize,
unsigned &BufferCapacity) { … }
NestedNameSpecifierLocBuilder::
NestedNameSpecifierLocBuilder(const NestedNameSpecifierLocBuilder &Other)
: … { … }
NestedNameSpecifierLocBuilder &
NestedNameSpecifierLocBuilder::
operator=(const NestedNameSpecifierLocBuilder &Other) { … }
void NestedNameSpecifierLocBuilder::Extend(ASTContext &Context,
SourceLocation TemplateKWLoc,
TypeLoc TL,
SourceLocation ColonColonLoc) { … }
void NestedNameSpecifierLocBuilder::Extend(ASTContext &Context,
IdentifierInfo *Identifier,
SourceLocation IdentifierLoc,
SourceLocation ColonColonLoc) { … }
void NestedNameSpecifierLocBuilder::Extend(ASTContext &Context,
NamespaceDecl *Namespace,
SourceLocation NamespaceLoc,
SourceLocation ColonColonLoc) { … }
void NestedNameSpecifierLocBuilder::Extend(ASTContext &Context,
NamespaceAliasDecl *Alias,
SourceLocation AliasLoc,
SourceLocation ColonColonLoc) { … }
void NestedNameSpecifierLocBuilder::MakeGlobal(ASTContext &Context,
SourceLocation ColonColonLoc) { … }
void NestedNameSpecifierLocBuilder::MakeSuper(ASTContext &Context,
CXXRecordDecl *RD,
SourceLocation SuperLoc,
SourceLocation ColonColonLoc) { … }
void NestedNameSpecifierLocBuilder::MakeTrivial(ASTContext &Context,
NestedNameSpecifier *Qualifier,
SourceRange R) { … }
void NestedNameSpecifierLocBuilder::Adopt(NestedNameSpecifierLoc Other) { … }
NestedNameSpecifierLoc
NestedNameSpecifierLocBuilder::getWithLocInContext(ASTContext &Context) const { … }