#include "clang/Sema/DeclSpec.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/Expr.h"
#include "clang/AST/LocInfoType.h"
#include "clang/AST/TypeLoc.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Sema/ParsedTemplate.h"
#include "clang/Sema/Sema.h"
#include "clang/Sema/SemaDiagnostic.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include <cstring>
usingnamespaceclang;
void UnqualifiedId::setTemplateId(TemplateIdAnnotation *TemplateId) { … }
void UnqualifiedId::setConstructorTemplateId(TemplateIdAnnotation *TemplateId) { … }
void CXXScopeSpec::Extend(ASTContext &Context, SourceLocation TemplateKWLoc,
TypeLoc TL, SourceLocation ColonColonLoc) { … }
void CXXScopeSpec::Extend(ASTContext &Context, IdentifierInfo *Identifier,
SourceLocation IdentifierLoc,
SourceLocation ColonColonLoc) { … }
void CXXScopeSpec::Extend(ASTContext &Context, NamespaceDecl *Namespace,
SourceLocation NamespaceLoc,
SourceLocation ColonColonLoc) { … }
void CXXScopeSpec::Extend(ASTContext &Context, NamespaceAliasDecl *Alias,
SourceLocation AliasLoc,
SourceLocation ColonColonLoc) { … }
void CXXScopeSpec::MakeGlobal(ASTContext &Context,
SourceLocation ColonColonLoc) { … }
void CXXScopeSpec::MakeSuper(ASTContext &Context, CXXRecordDecl *RD,
SourceLocation SuperLoc,
SourceLocation ColonColonLoc) { … }
void CXXScopeSpec::MakeTrivial(ASTContext &Context,
NestedNameSpecifier *Qualifier, SourceRange R) { … }
void CXXScopeSpec::Adopt(NestedNameSpecifierLoc Other) { … }
SourceLocation CXXScopeSpec::getLastQualifierNameLoc() const { … }
NestedNameSpecifierLoc
CXXScopeSpec::getWithLocInContext(ASTContext &Context) const { … }
DeclaratorChunk DeclaratorChunk::getFunction(bool hasProto,
bool isAmbiguous,
SourceLocation LParenLoc,
ParamInfo *Params,
unsigned NumParams,
SourceLocation EllipsisLoc,
SourceLocation RParenLoc,
bool RefQualifierIsLvalueRef,
SourceLocation RefQualifierLoc,
SourceLocation MutableLoc,
ExceptionSpecificationType
ESpecType,
SourceRange ESpecRange,
ParsedType *Exceptions,
SourceRange *ExceptionRanges,
unsigned NumExceptions,
Expr *NoexceptExpr,
CachedTokens *ExceptionSpecTokens,
ArrayRef<NamedDecl*>
DeclsInPrototype,
SourceLocation LocalRangeBegin,
SourceLocation LocalRangeEnd,
Declarator &TheDeclarator,
TypeResult TrailingReturnType,
SourceLocation
TrailingReturnTypeLoc,
DeclSpec *MethodQualifiers) { … }
void Declarator::setDecompositionBindings(
SourceLocation LSquareLoc,
MutableArrayRef<DecompositionDeclarator::Binding> Bindings,
SourceLocation RSquareLoc) { … }
bool Declarator::isDeclarationOfFunction() const { … }
bool Declarator::isStaticMember() { … }
bool Declarator::isExplicitObjectMemberFunction() { … }
bool Declarator::isCtorOrDtor() { … }
void DeclSpec::forEachCVRUQualifier(
llvm::function_ref<void(TQ, StringRef, SourceLocation)> Handle) { … }
void DeclSpec::forEachQualifier(
llvm::function_ref<void(TQ, StringRef, SourceLocation)> Handle) { … }
bool DeclSpec::hasTagDefinition() const { … }
unsigned DeclSpec::getParsedSpecifiers() const { … }
template <class T> static bool BadSpecifier(T TNew, T TPrev,
const char *&PrevSpec,
unsigned &DiagID,
bool IsExtension = true) { … }
const char *DeclSpec::getSpecifierName(DeclSpec::SCS S) { … }
const char *DeclSpec::getSpecifierName(DeclSpec::TSCS S) { … }
const char *DeclSpec::getSpecifierName(TypeSpecifierWidth W) { … }
const char *DeclSpec::getSpecifierName(TSC C) { … }
const char *DeclSpec::getSpecifierName(TypeSpecifierSign S) { … }
const char *DeclSpec::getSpecifierName(DeclSpec::TST T,
const PrintingPolicy &Policy) { … }
const char *DeclSpec::getSpecifierName(ConstexprSpecKind C) { … }
const char *DeclSpec::getSpecifierName(TQ T) { … }
bool DeclSpec::SetStorageClassSpec(Sema &S, SCS SC, SourceLocation Loc,
const char *&PrevSpec,
unsigned &DiagID,
const PrintingPolicy &Policy) { … }
bool DeclSpec::SetStorageClassSpecThread(TSCS TSC, SourceLocation Loc,
const char *&PrevSpec,
unsigned &DiagID) { … }
bool DeclSpec::SetTypeSpecWidth(TypeSpecifierWidth W, SourceLocation Loc,
const char *&PrevSpec, unsigned &DiagID,
const PrintingPolicy &Policy) { … }
bool DeclSpec::SetTypeSpecComplex(TSC C, SourceLocation Loc,
const char *&PrevSpec,
unsigned &DiagID) { … }
bool DeclSpec::SetTypeSpecSign(TypeSpecifierSign S, SourceLocation Loc,
const char *&PrevSpec, unsigned &DiagID) { … }
bool DeclSpec::SetTypeSpecType(TST T, SourceLocation Loc,
const char *&PrevSpec,
unsigned &DiagID,
ParsedType Rep,
const PrintingPolicy &Policy) { … }
bool DeclSpec::SetTypeSpecType(TST T, SourceLocation TagKwLoc,
SourceLocation TagNameLoc,
const char *&PrevSpec,
unsigned &DiagID,
ParsedType Rep,
const PrintingPolicy &Policy) { … }
bool DeclSpec::SetTypeSpecType(TST T, SourceLocation Loc,
const char *&PrevSpec,
unsigned &DiagID,
Expr *Rep,
const PrintingPolicy &Policy) { … }
bool DeclSpec::SetTypeSpecType(TST T, SourceLocation Loc,
const char *&PrevSpec,
unsigned &DiagID,
Decl *Rep, bool Owned,
const PrintingPolicy &Policy) { … }
bool DeclSpec::SetTypeSpecType(TST T, SourceLocation TagKwLoc,
SourceLocation TagNameLoc,
const char *&PrevSpec,
unsigned &DiagID,
Decl *Rep, bool Owned,
const PrintingPolicy &Policy) { … }
bool DeclSpec::SetTypeSpecType(TST T, SourceLocation Loc, const char *&PrevSpec,
unsigned &DiagID, TemplateIdAnnotation *Rep,
const PrintingPolicy &Policy) { … }
bool DeclSpec::SetTypeSpecType(TST T, SourceLocation Loc,
const char *&PrevSpec,
unsigned &DiagID,
const PrintingPolicy &Policy) { … }
bool DeclSpec::SetTypeSpecSat(SourceLocation Loc, const char *&PrevSpec,
unsigned &DiagID) { … }
bool DeclSpec::SetTypeAltiVecVector(bool isAltiVecVector, SourceLocation Loc,
const char *&PrevSpec, unsigned &DiagID,
const PrintingPolicy &Policy) { … }
bool DeclSpec::SetTypePipe(bool isPipe, SourceLocation Loc,
const char *&PrevSpec, unsigned &DiagID,
const PrintingPolicy &Policy) { … }
bool DeclSpec::SetTypeAltiVecPixel(bool isAltiVecPixel, SourceLocation Loc,
const char *&PrevSpec, unsigned &DiagID,
const PrintingPolicy &Policy) { … }
bool DeclSpec::SetTypeAltiVecBool(bool isAltiVecBool, SourceLocation Loc,
const char *&PrevSpec, unsigned &DiagID,
const PrintingPolicy &Policy) { … }
bool DeclSpec::SetTypeSpecError() { … }
bool DeclSpec::SetBitIntType(SourceLocation KWLoc, Expr *BitsExpr,
const char *&PrevSpec, unsigned &DiagID,
const PrintingPolicy &Policy) { … }
void DeclSpec::SetPackIndexingExpr(SourceLocation EllipsisLoc,
Expr *IndexingExpr) { … }
bool DeclSpec::SetTypeQual(TQ T, SourceLocation Loc, const char *&PrevSpec,
unsigned &DiagID, const LangOptions &Lang) { … }
bool DeclSpec::SetTypeQual(TQ T, SourceLocation Loc) { … }
bool DeclSpec::setFunctionSpecInline(SourceLocation Loc, const char *&PrevSpec,
unsigned &DiagID) { … }
bool DeclSpec::setFunctionSpecForceInline(SourceLocation Loc, const char *&PrevSpec,
unsigned &DiagID) { … }
bool DeclSpec::setFunctionSpecVirtual(SourceLocation Loc,
const char *&PrevSpec,
unsigned &DiagID) { … }
bool DeclSpec::setFunctionSpecExplicit(SourceLocation Loc,
const char *&PrevSpec, unsigned &DiagID,
ExplicitSpecifier ExplicitSpec,
SourceLocation CloseParenLoc) { … }
bool DeclSpec::setFunctionSpecNoreturn(SourceLocation Loc,
const char *&PrevSpec,
unsigned &DiagID) { … }
bool DeclSpec::SetFriendSpec(SourceLocation Loc, const char *&PrevSpec,
unsigned &DiagID) { … }
bool DeclSpec::setModulePrivateSpec(SourceLocation Loc, const char *&PrevSpec,
unsigned &DiagID) { … }
bool DeclSpec::SetConstexprSpec(ConstexprSpecKind ConstexprKind,
SourceLocation Loc, const char *&PrevSpec,
unsigned &DiagID) { … }
void DeclSpec::SaveWrittenBuiltinSpecs() { … }
void DeclSpec::Finish(Sema &S, const PrintingPolicy &Policy) { … }
bool DeclSpec::isMissingDeclaratorOk() { … }
void UnqualifiedId::setOperatorFunctionId(SourceLocation OperatorLoc,
OverloadedOperatorKind Op,
SourceLocation SymbolLocations[3]) { … }
bool VirtSpecifiers::SetSpecifier(Specifier VS, SourceLocation Loc,
const char *&PrevSpec) { … }
const char *VirtSpecifiers::getSpecifierName(Specifier VS) { … }