[clang] [Clang][NFC] Use const ASTContext reference in Decl Create methods (PR #185401)
Sameer Sahasrabuddhe via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 9 19:22:54 PDT 2026
https://github.com/ssahasra updated https://github.com/llvm/llvm-project/pull/185401
>From f46a6c695e7b4fab7b0f41155c9df185c4df5edb Mon Sep 17 00:00:00 2001
From: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: Thu, 5 Mar 2026 10:17:04 +0530
Subject: [PATCH] [Clang][NFC] Use const ASTContext reference in Decl Create
methods
Update Create() static factory methods, CreateDeserialized() methods, and
constructors in Decl.h to accept const ASTContext& instead of ASTContext&.
This change makes ASTContext parameters const-correct for declaration
creation and deserialization, affecting all Decl subclasses declared in
Decl.h.
Exceptions kept as non-const (only 3 methods):
- TranslationUnitDecl::Create() and constructor: stores non-const
ASTContext& member that is returned by getASTContext()
- DefaultedOrDeletedFunctionInfo::Create(): calls Context.Allocate()
which requires non-const access
Assisted-By: Claude Sonnect 4.5
---
clang/include/clang/AST/Decl.h | 172 ++++++++++++++++++---------------
clang/lib/AST/Decl.cpp | 153 +++++++++++++++--------------
clang/lib/AST/DeclCXX.cpp | 6 +-
3 files changed, 177 insertions(+), 154 deletions(-)
diff --git a/clang/include/clang/AST/Decl.h b/clang/include/clang/AST/Decl.h
index c3cd74a5b34db..a5b83aa55c1b0 100644
--- a/clang/include/clang/AST/Decl.h
+++ b/clang/include/clang/AST/Decl.h
@@ -182,8 +182,8 @@ class PragmaCommentDecl final
SourceLocation CommentLoc,
PragmaMSCommentKind CommentKind,
StringRef Arg);
- static PragmaCommentDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID,
- unsigned ArgSize);
+ static PragmaCommentDecl *
+ CreateDeserialized(const ASTContext &C, GlobalDeclID ID, unsigned ArgSize);
PragmaMSCommentKind getCommentKind() const { return CommentKind; }
@@ -216,8 +216,9 @@ class PragmaDetectMismatchDecl final
TranslationUnitDecl *DC,
SourceLocation Loc, StringRef Name,
StringRef Value);
- static PragmaDetectMismatchDecl *
- CreateDeserialized(ASTContext &C, GlobalDeclID ID, unsigned NameValueSize);
+ static PragmaDetectMismatchDecl *CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID,
+ unsigned NameValueSize);
StringRef getName() const { return getTrailingObjects(); }
StringRef getValue() const { return getTrailingObjects() + ValueStart; }
@@ -538,12 +539,12 @@ class LabelDecl : public NamedDecl {
void anchor() override;
public:
- static LabelDecl *Create(ASTContext &C, DeclContext *DC,
+ static LabelDecl *Create(const ASTContext &C, DeclContext *DC,
SourceLocation IdentL, IdentifierInfo *II);
- static LabelDecl *Create(ASTContext &C, DeclContext *DC,
+ static LabelDecl *Create(const ASTContext &C, DeclContext *DC,
SourceLocation IdentL, IdentifierInfo *II,
SourceLocation GnuLabelL);
- static LabelDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static LabelDecl *CreateDeserialized(const ASTContext &C, GlobalDeclID ID);
LabelStmt *getStmt() const { return TheStmt; }
void setStmt(LabelStmt *T) { TheStmt = T; }
@@ -600,7 +601,7 @@ class NamespaceDecl : public NamespaceBaseDecl,
/// The unnamed namespace that inhabits this namespace, if any.
NamespaceDecl *AnonymousNamespace = nullptr;
- NamespaceDecl(ASTContext &C, DeclContext *DC, bool Inline,
+ NamespaceDecl(const ASTContext &C, DeclContext *DC, bool Inline,
SourceLocation StartLoc, SourceLocation IdLoc,
IdentifierInfo *Id, NamespaceDecl *PrevDecl, bool Nested);
@@ -614,12 +615,13 @@ class NamespaceDecl : public NamespaceBaseDecl,
friend class ASTDeclReader;
friend class ASTDeclWriter;
- static NamespaceDecl *Create(ASTContext &C, DeclContext *DC, bool Inline,
- SourceLocation StartLoc, SourceLocation IdLoc,
- IdentifierInfo *Id, NamespaceDecl *PrevDecl,
- bool Nested);
+ static NamespaceDecl *Create(const ASTContext &C, DeclContext *DC,
+ bool Inline, SourceLocation StartLoc,
+ SourceLocation IdLoc, IdentifierInfo *Id,
+ NamespaceDecl *PrevDecl, bool Nested);
- static NamespaceDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static NamespaceDecl *CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID);
using redecl_range = redeclarable_base::redecl_range;
using redecl_iterator = redeclarable_base::redecl_iterator;
@@ -1125,9 +1127,10 @@ class VarDecl : public DeclaratorDecl, public Redeclarable<VarDecl> {
NonParmVarDeclBitfields NonParmVarDeclBits;
};
- VarDecl(Kind DK, ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
- SourceLocation IdLoc, const IdentifierInfo *Id, QualType T,
- TypeSourceInfo *TInfo, StorageClass SC);
+ VarDecl(Kind DK, const ASTContext &C, DeclContext *DC,
+ SourceLocation StartLoc, SourceLocation IdLoc,
+ const IdentifierInfo *Id, QualType T, TypeSourceInfo *TInfo,
+ StorageClass SC);
using redeclarable_base = Redeclarable<VarDecl>;
@@ -1154,12 +1157,12 @@ class VarDecl : public DeclaratorDecl, public Redeclarable<VarDecl> {
using redeclarable_base::getMostRecentDecl;
using redeclarable_base::isFirstDecl;
- static VarDecl *Create(ASTContext &C, DeclContext *DC,
+ static VarDecl *Create(const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc, SourceLocation IdLoc,
const IdentifierInfo *Id, QualType T,
TypeSourceInfo *TInfo, StorageClass S);
- static VarDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static VarDecl *CreateDeserialized(const ASTContext &C, GlobalDeclID ID);
SourceRange getSourceRange() const override LLVM_READONLY;
@@ -1751,15 +1754,16 @@ class ImplicitParamDecl : public VarDecl {
public:
/// Create implicit parameter.
- static ImplicitParamDecl *Create(ASTContext &C, DeclContext *DC,
+ static ImplicitParamDecl *Create(const ASTContext &C, DeclContext *DC,
SourceLocation IdLoc, IdentifierInfo *Id,
QualType T, ImplicitParamKind ParamKind);
- static ImplicitParamDecl *Create(ASTContext &C, QualType T,
+ static ImplicitParamDecl *Create(const ASTContext &C, QualType T,
ImplicitParamKind ParamKind);
- static ImplicitParamDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static ImplicitParamDecl *CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID);
- ImplicitParamDecl(ASTContext &C, DeclContext *DC, SourceLocation IdLoc,
+ ImplicitParamDecl(const ASTContext &C, DeclContext *DC, SourceLocation IdLoc,
const IdentifierInfo *Id, QualType Type,
ImplicitParamKind ParamKind)
: VarDecl(ImplicitParam, C, DC, IdLoc, IdLoc, Id, Type,
@@ -1768,7 +1772,8 @@ class ImplicitParamDecl : public VarDecl {
setImplicit();
}
- ImplicitParamDecl(ASTContext &C, QualType Type, ImplicitParamKind ParamKind)
+ ImplicitParamDecl(const ASTContext &C, QualType Type,
+ ImplicitParamKind ParamKind)
: VarDecl(ImplicitParam, C, /*DC=*/nullptr, SourceLocation(),
SourceLocation(), /*Id=*/nullptr, Type,
/*TInfo=*/nullptr, SC_None) {
@@ -1793,9 +1798,10 @@ class ParmVarDecl : public VarDecl {
enum { MaxFunctionScopeIndex = 255 };
protected:
- ParmVarDecl(Kind DK, ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
- SourceLocation IdLoc, const IdentifierInfo *Id, QualType T,
- TypeSourceInfo *TInfo, StorageClass S, Expr *DefArg)
+ ParmVarDecl(Kind DK, const ASTContext &C, DeclContext *DC,
+ SourceLocation StartLoc, SourceLocation IdLoc,
+ const IdentifierInfo *Id, QualType T, TypeSourceInfo *TInfo,
+ StorageClass S, Expr *DefArg)
: VarDecl(DK, C, DC, StartLoc, IdLoc, Id, T, TInfo, S) {
assert(ParmVarDeclBits.HasInheritedDefaultArg == false);
assert(ParmVarDeclBits.DefaultArgKind == DAK_None);
@@ -1805,13 +1811,13 @@ class ParmVarDecl : public VarDecl {
}
public:
- static ParmVarDecl *Create(ASTContext &C, DeclContext *DC,
+ static ParmVarDecl *Create(const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc, SourceLocation IdLoc,
const IdentifierInfo *Id, QualType T,
TypeSourceInfo *TInfo, StorageClass S,
Expr *DefArg);
- static ParmVarDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static ParmVarDecl *CreateDeserialized(const ASTContext &C, GlobalDeclID ID);
SourceRange getSourceRange() const override LLVM_READONLY;
@@ -2151,10 +2157,11 @@ class FunctionDecl : public DeclaratorDecl,
void setHasODRHash(bool B = true) { FunctionDeclBits.HasODRHash = B; }
protected:
- FunctionDecl(Kind DK, ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
- const DeclarationNameInfo &NameInfo, QualType T,
- TypeSourceInfo *TInfo, StorageClass S, bool UsesFPIntrin,
- bool isInlineSpecified, ConstexprSpecKind ConstexprKind,
+ FunctionDecl(Kind DK, const ASTContext &C, DeclContext *DC,
+ SourceLocation StartLoc, const DeclarationNameInfo &NameInfo,
+ QualType T, TypeSourceInfo *TInfo, StorageClass S,
+ bool UsesFPIntrin, bool isInlineSpecified,
+ ConstexprSpecKind ConstexprKind,
const AssociatedConstraint &TrailingRequiresClause);
using redeclarable_base = Redeclarable<FunctionDecl>;
@@ -2186,7 +2193,7 @@ class FunctionDecl : public DeclaratorDecl,
using redeclarable_base::isFirstDecl;
static FunctionDecl *
- Create(ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
+ Create(const ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
SourceLocation NLoc, DeclarationName N, QualType T,
TypeSourceInfo *TInfo, StorageClass SC, bool UsesFPIntrin = false,
bool isInlineSpecified = false, bool hasWrittenPrototype = true,
@@ -2200,13 +2207,13 @@ class FunctionDecl : public DeclaratorDecl,
}
static FunctionDecl *
- Create(ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
+ Create(const ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
const DeclarationNameInfo &NameInfo, QualType T, TypeSourceInfo *TInfo,
StorageClass SC, bool UsesFPIntrin, bool isInlineSpecified,
bool hasWrittenPrototype, ConstexprSpecKind ConstexprKind,
const AssociatedConstraint &TrailingRequiresClause);
- static FunctionDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static FunctionDecl *CreateDeserialized(const ASTContext &C, GlobalDeclID ID);
DeclarationNameInfo getNameInfo() const {
return DeclarationNameInfo(getDeclName(), getLocation(), DNLoc);
@@ -3238,7 +3245,7 @@ class FieldDecl : public DeclaratorDecl, public Mergeable<FieldDecl> {
TypeSourceInfo *TInfo, Expr *BW, bool Mutable,
InClassInitStyle InitStyle);
- static FieldDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static FieldDecl *CreateDeserialized(const ASTContext &C, GlobalDeclID ID);
/// Returns the index of this field within its record,
/// as appropriate for passing to ASTRecordLayout::getFieldOffset.
@@ -3432,11 +3439,11 @@ class EnumConstantDecl : public ValueDecl,
public:
friend class StmtIteratorBase;
- static EnumConstantDecl *Create(ASTContext &C, EnumDecl *DC,
+ static EnumConstantDecl *Create(const ASTContext &C, EnumDecl *DC,
SourceLocation L, IdentifierInfo *Id,
- QualType T, Expr *E,
- const llvm::APSInt &V);
- static EnumConstantDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ QualType T, Expr *E, const llvm::APSInt &V);
+ static EnumConstantDecl *CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID);
const Expr *getInitExpr() const { return (const Expr*) Init; }
Expr *getInitExpr() { return (Expr*) Init; }
@@ -3468,7 +3475,7 @@ class IndirectFieldDecl : public ValueDecl,
NamedDecl **Chaining;
unsigned ChainingSize;
- IndirectFieldDecl(ASTContext &C, DeclContext *DC, SourceLocation L,
+ IndirectFieldDecl(const ASTContext &C, DeclContext *DC, SourceLocation L,
DeclarationName N, QualType T,
MutableArrayRef<NamedDecl *> CH);
@@ -3477,11 +3484,12 @@ class IndirectFieldDecl : public ValueDecl,
public:
friend class ASTDeclReader;
- static IndirectFieldDecl *Create(ASTContext &C, DeclContext *DC,
+ static IndirectFieldDecl *Create(const ASTContext &C, DeclContext *DC,
SourceLocation L, const IdentifierInfo *Id,
QualType T, MutableArrayRef<NamedDecl *> CH);
- static IndirectFieldDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static IndirectFieldDecl *CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID);
using chain_iterator = ArrayRef<NamedDecl *>::const_iterator;
@@ -3574,7 +3582,7 @@ class TypedefNameDecl : public TypeDecl, public Redeclarable<TypedefNameDecl> {
void anchor() override;
protected:
- TypedefNameDecl(Kind DK, ASTContext &C, DeclContext *DC,
+ TypedefNameDecl(Kind DK, const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc, SourceLocation IdLoc,
const IdentifierInfo *Id, TypeSourceInfo *TInfo)
: TypeDecl(DK, DC, IdLoc, Id, StartLoc), redeclarable_base(C),
@@ -3665,16 +3673,16 @@ class TypedefNameDecl : public TypeDecl, public Redeclarable<TypedefNameDecl> {
/// Represents the declaration of a typedef-name via the 'typedef'
/// type specifier.
class TypedefDecl : public TypedefNameDecl {
- TypedefDecl(ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
+ TypedefDecl(const ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
SourceLocation IdLoc, const IdentifierInfo *Id,
TypeSourceInfo *TInfo)
: TypedefNameDecl(Typedef, C, DC, StartLoc, IdLoc, Id, TInfo) {}
public:
- static TypedefDecl *Create(ASTContext &C, DeclContext *DC,
+ static TypedefDecl *Create(const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc, SourceLocation IdLoc,
const IdentifierInfo *Id, TypeSourceInfo *TInfo);
- static TypedefDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static TypedefDecl *CreateDeserialized(const ASTContext &C, GlobalDeclID ID);
SourceRange getSourceRange() const override LLVM_READONLY;
@@ -3689,17 +3697,18 @@ class TypeAliasDecl : public TypedefNameDecl {
/// The template for which this is the pattern, if any.
TypeAliasTemplateDecl *Template;
- TypeAliasDecl(ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
+ TypeAliasDecl(const ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
SourceLocation IdLoc, const IdentifierInfo *Id,
TypeSourceInfo *TInfo)
: TypedefNameDecl(TypeAlias, C, DC, StartLoc, IdLoc, Id, TInfo),
Template(nullptr) {}
public:
- static TypeAliasDecl *Create(ASTContext &C, DeclContext *DC,
+ static TypeAliasDecl *Create(const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc, SourceLocation IdLoc,
const IdentifierInfo *Id, TypeSourceInfo *TInfo);
- static TypeAliasDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static TypeAliasDecl *CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID);
SourceRange getSourceRange() const override LLVM_READONLY;
@@ -4051,7 +4060,7 @@ class EnumDecl : public TagDecl {
/// - 'enum class|struct' (scoped)
SourceRange EnumKeyRange;
- EnumDecl(ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
+ EnumDecl(const ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
SourceLocation IdLoc, IdentifierInfo *Id, EnumDecl *PrevDecl,
bool Scoped, bool ScopedUsingClassTag, bool Fixed);
@@ -4130,12 +4139,11 @@ class EnumDecl : public TagDecl {
return cast_or_null<EnumDecl>(TagDecl::getDefinitionOrSelf());
}
- static EnumDecl *Create(ASTContext &C, DeclContext *DC,
+ static EnumDecl *Create(const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc, SourceLocation IdLoc,
- IdentifierInfo *Id, EnumDecl *PrevDecl,
- bool IsScoped, bool IsScopedUsingClassTag,
- bool IsFixed);
- static EnumDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ IdentifierInfo *Id, EnumDecl *PrevDecl, bool IsScoped,
+ bool IsScopedUsingClassTag, bool IsFixed);
+ static EnumDecl *CreateDeserialized(const ASTContext &C, GlobalDeclID ID);
/// Overrides to provide correct range when there's an enum-base specifier
/// with forward declarations.
@@ -4606,11 +4614,12 @@ class FileScopeAsmDecl : public Decl {
virtual void anchor();
public:
- static FileScopeAsmDecl *Create(ASTContext &C, DeclContext *DC, Expr *Str,
- SourceLocation AsmLoc,
+ static FileScopeAsmDecl *Create(const ASTContext &C, DeclContext *DC,
+ Expr *Str, SourceLocation AsmLoc,
SourceLocation RParenLoc);
- static FileScopeAsmDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static FileScopeAsmDecl *CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID);
SourceLocation getAsmLoc() const { return getLocation(); }
SourceLocation getRParenLoc() const { return RParenLoc; }
@@ -4647,8 +4656,9 @@ class TopLevelStmtDecl : public Decl, public DeclContext {
virtual void anchor();
public:
- static TopLevelStmtDecl *Create(ASTContext &C, Stmt *Statement);
- static TopLevelStmtDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static TopLevelStmtDecl *Create(const ASTContext &C, Stmt *Statement);
+ static TopLevelStmtDecl *CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID);
SourceRange getSourceRange() const override LLVM_READONLY;
Stmt *getStmt() { return Statement; }
@@ -4741,8 +4751,9 @@ class BlockDecl : public Decl, public DeclContext {
BlockDecl(DeclContext *DC, SourceLocation CaretLoc);
public:
- static BlockDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation L);
- static BlockDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static BlockDecl *Create(const ASTContext &C, DeclContext *DC,
+ SourceLocation L);
+ static BlockDecl *CreateDeserialized(const ASTContext &C, GlobalDeclID ID);
SourceLocation getCaretLocation() const { return getLocation(); }
@@ -4897,10 +4908,10 @@ class OutlinedFunctionDecl final
friend class ASTDeclWriter;
friend TrailingObjects;
- static OutlinedFunctionDecl *Create(ASTContext &C, DeclContext *DC,
+ static OutlinedFunctionDecl *Create(const ASTContext &C, DeclContext *DC,
unsigned NumParams);
static OutlinedFunctionDecl *
- CreateDeserialized(ASTContext &C, GlobalDeclID ID, unsigned NumParams);
+ CreateDeserialized(const ASTContext &C, GlobalDeclID ID, unsigned NumParams);
Stmt *getBody() const override;
void setBody(Stmt *B);
@@ -4970,9 +4981,9 @@ class CapturedDecl final
friend class ASTDeclWriter;
friend TrailingObjects;
- static CapturedDecl *Create(ASTContext &C, DeclContext *DC,
+ static CapturedDecl *Create(const ASTContext &C, DeclContext *DC,
unsigned NumParams);
- static CapturedDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID,
+ static CapturedDecl *CreateDeserialized(const ASTContext &C, GlobalDeclID ID,
unsigned NumParams);
Stmt *getBody() const override;
@@ -5095,18 +5106,18 @@ class ImportDecl final : public Decl,
public:
/// Create a new module import declaration.
- static ImportDecl *Create(ASTContext &C, DeclContext *DC,
+ static ImportDecl *Create(const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc, Module *Imported,
ArrayRef<SourceLocation> IdentifierLocs);
/// Create a new module import declaration for an implicitly-generated
/// import.
- static ImportDecl *CreateImplicit(ASTContext &C, DeclContext *DC,
+ static ImportDecl *CreateImplicit(const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc, Module *Imported,
SourceLocation EndLoc);
/// Create a new, deserialized module import declaration.
- static ImportDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID,
+ static ImportDecl *CreateDeserialized(const ASTContext &C, GlobalDeclID ID,
unsigned NumLocations);
/// Retrieve the module that was imported by the import declaration.
@@ -5145,9 +5156,9 @@ class ExportDecl final : public Decl, public DeclContext {
RBraceLoc(SourceLocation()) {}
public:
- static ExportDecl *Create(ASTContext &C, DeclContext *DC,
+ static ExportDecl *Create(const ASTContext &C, DeclContext *DC,
SourceLocation ExportLoc);
- static ExportDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static ExportDecl *CreateDeserialized(const ASTContext &C, GlobalDeclID ID);
SourceLocation getExportLoc() const { return getLocation(); }
SourceLocation getRBraceLoc() const { return RBraceLoc; }
@@ -5184,9 +5195,9 @@ class EmptyDecl : public Decl {
virtual void anchor();
public:
- static EmptyDecl *Create(ASTContext &C, DeclContext *DC,
+ static EmptyDecl *Create(const ASTContext &C, DeclContext *DC,
SourceLocation L);
- static EmptyDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static EmptyDecl *CreateDeserialized(const ASTContext &C, GlobalDeclID ID);
static bool classof(const Decl *D) { return classofKind(D->getKind()); }
static bool classofKind(Kind K) { return K == Empty; }
@@ -5221,14 +5232,15 @@ class HLSLBufferDecl final : public NamedDecl, public DeclContext {
void setDefaultBufferDecls(ArrayRef<Decl *> Decls);
public:
- static HLSLBufferDecl *Create(ASTContext &C, DeclContext *LexicalParent,
+ static HLSLBufferDecl *Create(const ASTContext &C, DeclContext *LexicalParent,
bool CBuffer, SourceLocation KwLoc,
IdentifierInfo *ID, SourceLocation IDLoc,
SourceLocation LBrace);
static HLSLBufferDecl *
- CreateDefaultCBuffer(ASTContext &C, DeclContext *LexicalParent,
+ CreateDefaultCBuffer(const ASTContext &C, DeclContext *LexicalParent,
ArrayRef<Decl *> DefaultCBufferDecls);
- static HLSLBufferDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
+ static HLSLBufferDecl *CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID);
SourceRange getSourceRange() const override LLVM_READONLY {
return SourceRange(getLocStart(), RBraceLoc);
@@ -5301,11 +5313,11 @@ class HLSLRootSignatureDecl final
public:
static HLSLRootSignatureDecl *
- Create(ASTContext &C, DeclContext *DC, SourceLocation Loc, IdentifierInfo *ID,
- llvm::dxbc::RootSignatureVersion Version,
+ Create(const ASTContext &C, DeclContext *DC, SourceLocation Loc,
+ IdentifierInfo *ID, llvm::dxbc::RootSignatureVersion Version,
ArrayRef<llvm::hlsl::rootsig::RootElement> RootElements);
- static HLSLRootSignatureDecl *CreateDeserialized(ASTContext &C,
+ static HLSLRootSignatureDecl *CreateDeserialized(const ASTContext &C,
GlobalDeclID ID);
llvm::dxbc::RootSignatureVersion getVersion() const { return Version; }
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp
index 37b00eeca539c..ffc11bf6e8100 100644
--- a/clang/lib/AST/Decl.cpp
+++ b/clang/lib/AST/Decl.cpp
@@ -2143,7 +2143,7 @@ const char *VarDecl::getStorageClassSpecifierString(StorageClass SC) {
llvm_unreachable("Invalid storage class");
}
-VarDecl::VarDecl(Kind DK, ASTContext &C, DeclContext *DC,
+VarDecl::VarDecl(Kind DK, const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc, SourceLocation IdLoc,
const IdentifierInfo *Id, QualType T, TypeSourceInfo *TInfo,
StorageClass SC)
@@ -2160,13 +2160,14 @@ VarDecl::VarDecl(Kind DK, ASTContext &C, DeclContext *DC,
// Everything else is implicitly initialized to false.
}
-VarDecl *VarDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation StartL,
- SourceLocation IdL, const IdentifierInfo *Id,
- QualType T, TypeSourceInfo *TInfo, StorageClass S) {
+VarDecl *VarDecl::Create(const ASTContext &C, DeclContext *DC,
+ SourceLocation StartL, SourceLocation IdL,
+ const IdentifierInfo *Id, QualType T,
+ TypeSourceInfo *TInfo, StorageClass S) {
return new (C, DC) VarDecl(Var, C, DC, StartL, IdL, Id, T, TInfo, S);
}
-VarDecl *VarDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID) {
+VarDecl *VarDecl::CreateDeserialized(const ASTContext &C, GlobalDeclID ID) {
return new (C, ID)
VarDecl(Var, C, nullptr, SourceLocation(), SourceLocation(), nullptr,
QualType(), nullptr, SC_None);
@@ -2955,7 +2956,7 @@ VarDecl::setInstantiationOfStaticDataMember(VarDecl *VD,
// ParmVarDecl Implementation
//===----------------------------------------------------------------------===//
-ParmVarDecl *ParmVarDecl::Create(ASTContext &C, DeclContext *DC,
+ParmVarDecl *ParmVarDecl::Create(const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc, SourceLocation IdLoc,
const IdentifierInfo *Id, QualType T,
TypeSourceInfo *TInfo, StorageClass S,
@@ -2972,7 +2973,8 @@ QualType ParmVarDecl::getOriginalType() const {
return T;
}
-ParmVarDecl *ParmVarDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID) {
+ParmVarDecl *ParmVarDecl::CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID) {
return new (C, ID)
ParmVarDecl(ParmVar, C, nullptr, SourceLocation(), SourceLocation(),
nullptr, QualType(), nullptr, SC_None, nullptr);
@@ -3077,7 +3079,7 @@ unsigned ParmVarDecl::getParameterIndexLarge() const {
// FunctionDecl Implementation
//===----------------------------------------------------------------------===//
-FunctionDecl::FunctionDecl(Kind DK, ASTContext &C, DeclContext *DC,
+FunctionDecl::FunctionDecl(Kind DK, const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc,
const DeclarationNameInfo &NameInfo, QualType T,
TypeSourceInfo *TInfo, StorageClass S,
@@ -4707,7 +4709,7 @@ FieldDecl *FieldDecl::Create(const ASTContext &C, DeclContext *DC,
BW, Mutable, InitStyle);
}
-FieldDecl *FieldDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID) {
+FieldDecl *FieldDecl::CreateDeserialized(const ASTContext &C, GlobalDeclID ID) {
return new (C, ID) FieldDecl(Field, nullptr, SourceLocation(),
SourceLocation(), nullptr, QualType(), nullptr,
nullptr, false, ICIS_NoInit);
@@ -5055,9 +5057,10 @@ void TagDecl::setTemplateParameterListsInfo(
// EnumDecl Implementation
//===----------------------------------------------------------------------===//
-EnumDecl::EnumDecl(ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
- SourceLocation IdLoc, IdentifierInfo *Id, EnumDecl *PrevDecl,
- bool Scoped, bool ScopedUsingClassTag, bool Fixed)
+EnumDecl::EnumDecl(const ASTContext &C, DeclContext *DC,
+ SourceLocation StartLoc, SourceLocation IdLoc,
+ IdentifierInfo *Id, EnumDecl *PrevDecl, bool Scoped,
+ bool ScopedUsingClassTag, bool Fixed)
: TagDecl(Enum, TagTypeKind::Enum, C, DC, IdLoc, Id, PrevDecl, StartLoc) {
assert(Scoped || !ScopedUsingClassTag);
IntegerType = nullptr;
@@ -5072,16 +5075,16 @@ EnumDecl::EnumDecl(ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
void EnumDecl::anchor() {}
-EnumDecl *EnumDecl::Create(ASTContext &C, DeclContext *DC,
+EnumDecl *EnumDecl::Create(const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc, SourceLocation IdLoc,
- IdentifierInfo *Id,
- EnumDecl *PrevDecl, bool IsScoped,
- bool IsScopedUsingClassTag, bool IsFixed) {
+ IdentifierInfo *Id, EnumDecl *PrevDecl,
+ bool IsScoped, bool IsScopedUsingClassTag,
+ bool IsFixed) {
return new (C, DC) EnumDecl(C, DC, StartLoc, IdLoc, Id, PrevDecl, IsScoped,
IsScopedUsingClassTag, IsFixed);
}
-EnumDecl *EnumDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID) {
+EnumDecl *EnumDecl::CreateDeserialized(const ASTContext &C, GlobalDeclID ID) {
return new (C, ID) EnumDecl(C, nullptr, SourceLocation(), SourceLocation(),
nullptr, nullptr, false, false, false);
}
@@ -5513,7 +5516,7 @@ PragmaCommentDecl *PragmaCommentDecl::Create(const ASTContext &C,
return PCD;
}
-PragmaCommentDecl *PragmaCommentDecl::CreateDeserialized(ASTContext &C,
+PragmaCommentDecl *PragmaCommentDecl::CreateDeserialized(const ASTContext &C,
GlobalDeclID ID,
unsigned ArgSize) {
return new (C, ID, additionalSizeToAlloc<char>(ArgSize + 1))
@@ -5537,9 +5540,8 @@ PragmaDetectMismatchDecl::Create(const ASTContext &C, TranslationUnitDecl *DC,
return PDMD;
}
-PragmaDetectMismatchDecl *
-PragmaDetectMismatchDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID,
- unsigned NameValueSize) {
+PragmaDetectMismatchDecl *PragmaDetectMismatchDecl::CreateDeserialized(
+ const ASTContext &C, GlobalDeclID ID, unsigned NameValueSize) {
return new (C, ID, additionalSizeToAlloc<char>(NameValueSize + 1))
PragmaDetectMismatchDecl(nullptr, SourceLocation(), 0);
}
@@ -5553,19 +5555,19 @@ ExternCContextDecl *ExternCContextDecl::Create(const ASTContext &C,
void LabelDecl::anchor() {}
-LabelDecl *LabelDecl::Create(ASTContext &C, DeclContext *DC,
+LabelDecl *LabelDecl::Create(const ASTContext &C, DeclContext *DC,
SourceLocation IdentL, IdentifierInfo *II) {
return new (C, DC) LabelDecl(DC, IdentL, II, nullptr, IdentL);
}
-LabelDecl *LabelDecl::Create(ASTContext &C, DeclContext *DC,
+LabelDecl *LabelDecl::Create(const ASTContext &C, DeclContext *DC,
SourceLocation IdentL, IdentifierInfo *II,
SourceLocation GnuLabelL) {
assert(GnuLabelL != IdentL && "Use this only for GNU local labels");
return new (C, DC) LabelDecl(DC, IdentL, II, nullptr, GnuLabelL);
}
-LabelDecl *LabelDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID) {
+LabelDecl *LabelDecl::CreateDeserialized(const ASTContext &C, GlobalDeclID ID) {
return new (C, ID) LabelDecl(nullptr, SourceLocation(), nullptr, nullptr,
SourceLocation());
}
@@ -5600,30 +5602,30 @@ bool ValueDecl::isParameterPack() const {
void ImplicitParamDecl::anchor() {}
-ImplicitParamDecl *ImplicitParamDecl::Create(ASTContext &C, DeclContext *DC,
+ImplicitParamDecl *ImplicitParamDecl::Create(const ASTContext &C,
+ DeclContext *DC,
SourceLocation IdLoc,
IdentifierInfo *Id, QualType Type,
ImplicitParamKind ParamKind) {
return new (C, DC) ImplicitParamDecl(C, DC, IdLoc, Id, Type, ParamKind);
}
-ImplicitParamDecl *ImplicitParamDecl::Create(ASTContext &C, QualType Type,
+ImplicitParamDecl *ImplicitParamDecl::Create(const ASTContext &C, QualType Type,
ImplicitParamKind ParamKind) {
return new (C, nullptr) ImplicitParamDecl(C, Type, ParamKind);
}
-ImplicitParamDecl *ImplicitParamDecl::CreateDeserialized(ASTContext &C,
+ImplicitParamDecl *ImplicitParamDecl::CreateDeserialized(const ASTContext &C,
GlobalDeclID ID) {
return new (C, ID) ImplicitParamDecl(C, QualType(), ImplicitParamKind::Other);
}
-FunctionDecl *
-FunctionDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
- const DeclarationNameInfo &NameInfo, QualType T,
- TypeSourceInfo *TInfo, StorageClass SC, bool UsesFPIntrin,
- bool isInlineSpecified, bool hasWrittenPrototype,
- ConstexprSpecKind ConstexprKind,
- const AssociatedConstraint &TrailingRequiresClause) {
+FunctionDecl *FunctionDecl::Create(
+ const ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
+ const DeclarationNameInfo &NameInfo, QualType T, TypeSourceInfo *TInfo,
+ StorageClass SC, bool UsesFPIntrin, bool isInlineSpecified,
+ bool hasWrittenPrototype, ConstexprSpecKind ConstexprKind,
+ const AssociatedConstraint &TrailingRequiresClause) {
FunctionDecl *New = new (C, DC) FunctionDecl(
Function, C, DC, StartLoc, NameInfo, T, TInfo, SC, UsesFPIntrin,
isInlineSpecified, ConstexprKind, TrailingRequiresClause);
@@ -5631,7 +5633,8 @@ FunctionDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
return New;
}
-FunctionDecl *FunctionDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID) {
+FunctionDecl *FunctionDecl::CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID) {
return new (C, ID) FunctionDecl(
Function, C, nullptr, SourceLocation(), DeclarationNameInfo(), QualType(),
nullptr, SC_None, false, false, ConstexprSpecKind::Unspecified,
@@ -5643,11 +5646,12 @@ bool FunctionDecl::isReferenceableKernel() const {
DeviceKernelAttr::isOpenCLSpelling(getAttr<DeviceKernelAttr>());
}
-BlockDecl *BlockDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L) {
+BlockDecl *BlockDecl::Create(const ASTContext &C, DeclContext *DC,
+ SourceLocation L) {
return new (C, DC) BlockDecl(DC, L);
}
-BlockDecl *BlockDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID) {
+BlockDecl *BlockDecl::CreateDeserialized(const ASTContext &C, GlobalDeclID ID) {
return new (C, ID) BlockDecl(nullptr, SourceLocation());
}
@@ -5656,7 +5660,7 @@ OutlinedFunctionDecl::OutlinedFunctionDecl(DeclContext *DC, unsigned NumParams)
DeclContext(OutlinedFunction), NumParams(NumParams),
BodyAndNothrow(nullptr, false) {}
-OutlinedFunctionDecl *OutlinedFunctionDecl::Create(ASTContext &C,
+OutlinedFunctionDecl *OutlinedFunctionDecl::Create(const ASTContext &C,
DeclContext *DC,
unsigned NumParams) {
return new (C, DC, additionalSizeToAlloc<ImplicitParamDecl *>(NumParams))
@@ -5664,7 +5668,7 @@ OutlinedFunctionDecl *OutlinedFunctionDecl::Create(ASTContext &C,
}
OutlinedFunctionDecl *
-OutlinedFunctionDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID,
+OutlinedFunctionDecl::CreateDeserialized(const ASTContext &C, GlobalDeclID ID,
unsigned NumParams) {
return new (C, ID, additionalSizeToAlloc<ImplicitParamDecl *>(NumParams))
OutlinedFunctionDecl(nullptr, NumParams);
@@ -5684,13 +5688,14 @@ CapturedDecl::CapturedDecl(DeclContext *DC, unsigned NumParams)
: Decl(Captured, DC, SourceLocation()), DeclContext(Captured),
NumParams(NumParams), ContextParam(0), BodyAndNothrow(nullptr, false) {}
-CapturedDecl *CapturedDecl::Create(ASTContext &C, DeclContext *DC,
+CapturedDecl *CapturedDecl::Create(const ASTContext &C, DeclContext *DC,
unsigned NumParams) {
return new (C, DC, additionalSizeToAlloc<ImplicitParamDecl *>(NumParams))
CapturedDecl(DC, NumParams);
}
-CapturedDecl *CapturedDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID,
+CapturedDecl *CapturedDecl::CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID,
unsigned NumParams) {
return new (C, ID, additionalSizeToAlloc<ImplicitParamDecl *>(NumParams))
CapturedDecl(nullptr, NumParams);
@@ -5709,14 +5714,14 @@ EnumConstantDecl::EnumConstantDecl(const ASTContext &C, DeclContext *DC,
setInitVal(C, V);
}
-EnumConstantDecl *EnumConstantDecl::Create(ASTContext &C, EnumDecl *CD,
- SourceLocation L,
- IdentifierInfo *Id, QualType T,
- Expr *E, const llvm::APSInt &V) {
+EnumConstantDecl *EnumConstantDecl::Create(const ASTContext &C, EnumDecl *CD,
+ SourceLocation L, IdentifierInfo *Id,
+ QualType T, Expr *E,
+ const llvm::APSInt &V) {
return new (C, CD) EnumConstantDecl(C, CD, L, Id, T, E, V);
}
-EnumConstantDecl *EnumConstantDecl::CreateDeserialized(ASTContext &C,
+EnumConstantDecl *EnumConstantDecl::CreateDeserialized(const ASTContext &C,
GlobalDeclID ID) {
return new (C, ID) EnumConstantDecl(C, nullptr, SourceLocation(), nullptr,
QualType(), nullptr, llvm::APSInt());
@@ -5724,7 +5729,7 @@ EnumConstantDecl *EnumConstantDecl::CreateDeserialized(ASTContext &C,
void IndirectFieldDecl::anchor() {}
-IndirectFieldDecl::IndirectFieldDecl(ASTContext &C, DeclContext *DC,
+IndirectFieldDecl::IndirectFieldDecl(const ASTContext &C, DeclContext *DC,
SourceLocation L, DeclarationName N,
QualType T,
MutableArrayRef<NamedDecl *> CH)
@@ -5736,15 +5741,15 @@ IndirectFieldDecl::IndirectFieldDecl(ASTContext &C, DeclContext *DC,
IdentifierNamespace |= IDNS_Tag;
}
-IndirectFieldDecl *IndirectFieldDecl::Create(ASTContext &C, DeclContext *DC,
- SourceLocation L,
+IndirectFieldDecl *IndirectFieldDecl::Create(const ASTContext &C,
+ DeclContext *DC, SourceLocation L,
const IdentifierInfo *Id,
QualType T,
MutableArrayRef<NamedDecl *> CH) {
return new (C, DC) IndirectFieldDecl(C, DC, L, Id, T, CH);
}
-IndirectFieldDecl *IndirectFieldDecl::CreateDeserialized(ASTContext &C,
+IndirectFieldDecl *IndirectFieldDecl::CreateDeserialized(const ASTContext &C,
GlobalDeclID ID) {
return new (C, ID) IndirectFieldDecl(C, nullptr, SourceLocation(),
DeclarationName(), QualType(), {});
@@ -5759,7 +5764,7 @@ SourceRange EnumConstantDecl::getSourceRange() const {
void TypeDecl::anchor() {}
-TypedefDecl *TypedefDecl::Create(ASTContext &C, DeclContext *DC,
+TypedefDecl *TypedefDecl::Create(const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc, SourceLocation IdLoc,
const IdentifierInfo *Id,
TypeSourceInfo *TInfo) {
@@ -5805,12 +5810,13 @@ bool TypedefNameDecl::isTransparentTagSlow() const {
return isTransparent;
}
-TypedefDecl *TypedefDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID) {
+TypedefDecl *TypedefDecl::CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID) {
return new (C, ID) TypedefDecl(C, nullptr, SourceLocation(), SourceLocation(),
nullptr, nullptr);
}
-TypeAliasDecl *TypeAliasDecl::Create(ASTContext &C, DeclContext *DC,
+TypeAliasDecl *TypeAliasDecl::Create(const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc,
SourceLocation IdLoc,
const IdentifierInfo *Id,
@@ -5818,7 +5824,7 @@ TypeAliasDecl *TypeAliasDecl::Create(ASTContext &C, DeclContext *DC,
return new (C, DC) TypeAliasDecl(C, DC, StartLoc, IdLoc, Id, TInfo);
}
-TypeAliasDecl *TypeAliasDecl::CreateDeserialized(ASTContext &C,
+TypeAliasDecl *TypeAliasDecl::CreateDeserialized(const ASTContext &C,
GlobalDeclID ID) {
return new (C, ID) TypeAliasDecl(C, nullptr, SourceLocation(),
SourceLocation(), nullptr, nullptr);
@@ -5842,13 +5848,13 @@ SourceRange TypeAliasDecl::getSourceRange() const {
void FileScopeAsmDecl::anchor() {}
-FileScopeAsmDecl *FileScopeAsmDecl::Create(ASTContext &C, DeclContext *DC,
+FileScopeAsmDecl *FileScopeAsmDecl::Create(const ASTContext &C, DeclContext *DC,
Expr *Str, SourceLocation AsmLoc,
SourceLocation RParenLoc) {
return new (C, DC) FileScopeAsmDecl(DC, Str, AsmLoc, RParenLoc);
}
-FileScopeAsmDecl *FileScopeAsmDecl::CreateDeserialized(ASTContext &C,
+FileScopeAsmDecl *FileScopeAsmDecl::CreateDeserialized(const ASTContext &C,
GlobalDeclID ID) {
return new (C, ID) FileScopeAsmDecl(nullptr, nullptr, SourceLocation(),
SourceLocation());
@@ -5860,7 +5866,8 @@ std::string FileScopeAsmDecl::getAsmString() const {
void TopLevelStmtDecl::anchor() {}
-TopLevelStmtDecl *TopLevelStmtDecl::Create(ASTContext &C, Stmt *Statement) {
+TopLevelStmtDecl *TopLevelStmtDecl::Create(const ASTContext &C,
+ Stmt *Statement) {
assert(C.getLangOpts().IncrementalExtensions &&
"Must be used only in incremental mode");
@@ -5870,7 +5877,7 @@ TopLevelStmtDecl *TopLevelStmtDecl::Create(ASTContext &C, Stmt *Statement) {
return new (C, DC) TopLevelStmtDecl(DC, Loc, Statement);
}
-TopLevelStmtDecl *TopLevelStmtDecl::CreateDeserialized(ASTContext &C,
+TopLevelStmtDecl *TopLevelStmtDecl::CreateDeserialized(const ASTContext &C,
GlobalDeclID ID) {
return new (C, ID)
TopLevelStmtDecl(/*DC=*/nullptr, SourceLocation(), /*S=*/nullptr);
@@ -5888,11 +5895,12 @@ void TopLevelStmtDecl::setStmt(Stmt *S) {
void EmptyDecl::anchor() {}
-EmptyDecl *EmptyDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L) {
+EmptyDecl *EmptyDecl::Create(const ASTContext &C, DeclContext *DC,
+ SourceLocation L) {
return new (C, DC) EmptyDecl(DC, L);
}
-EmptyDecl *EmptyDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID) {
+EmptyDecl *EmptyDecl::CreateDeserialized(const ASTContext &C, GlobalDeclID ID) {
return new (C, ID) EmptyDecl(nullptr, SourceLocation());
}
@@ -5903,7 +5911,7 @@ HLSLBufferDecl::HLSLBufferDecl(DeclContext *DC, bool CBuffer,
DeclContext(Decl::Kind::HLSLBuffer), LBraceLoc(LBrace), KwLoc(KwLoc),
IsCBuffer(CBuffer), HasValidPackoffset(false), LayoutStruct(nullptr) {}
-HLSLBufferDecl *HLSLBufferDecl::Create(ASTContext &C,
+HLSLBufferDecl *HLSLBufferDecl::Create(const ASTContext &C,
DeclContext *LexicalParent, bool CBuffer,
SourceLocation KwLoc, IdentifierInfo *ID,
SourceLocation IDLoc,
@@ -5926,7 +5934,8 @@ HLSLBufferDecl *HLSLBufferDecl::Create(ASTContext &C,
}
HLSLBufferDecl *
-HLSLBufferDecl::CreateDefaultCBuffer(ASTContext &C, DeclContext *LexicalParent,
+HLSLBufferDecl::CreateDefaultCBuffer(const ASTContext &C,
+ DeclContext *LexicalParent,
ArrayRef<Decl *> DefaultCBufferDecls) {
DeclContext *DC = LexicalParent;
IdentifierInfo *II = &C.Idents.get("$Globals", tok::TokenKind::identifier);
@@ -5937,7 +5946,7 @@ HLSLBufferDecl::CreateDefaultCBuffer(ASTContext &C, DeclContext *LexicalParent,
return Result;
}
-HLSLBufferDecl *HLSLBufferDecl::CreateDeserialized(ASTContext &C,
+HLSLBufferDecl *HLSLBufferDecl::CreateDeserialized(const ASTContext &C,
GlobalDeclID ID) {
return new (C, ID) HLSLBufferDecl(nullptr, false, SourceLocation(), nullptr,
SourceLocation(), SourceLocation());
@@ -5990,8 +5999,8 @@ HLSLRootSignatureDecl::HLSLRootSignatureDecl(
Version(Version), NumElems(NumElems) {}
HLSLRootSignatureDecl *HLSLRootSignatureDecl::Create(
- ASTContext &C, DeclContext *DC, SourceLocation Loc, IdentifierInfo *ID,
- llvm::dxbc::RootSignatureVersion Version,
+ const ASTContext &C, DeclContext *DC, SourceLocation Loc,
+ IdentifierInfo *ID, llvm::dxbc::RootSignatureVersion Version,
ArrayRef<llvm::hlsl::rootsig::RootElement> RootElements) {
HLSLRootSignatureDecl *RSDecl =
new (C, DC,
@@ -6004,7 +6013,8 @@ HLSLRootSignatureDecl *HLSLRootSignatureDecl::Create(
}
HLSLRootSignatureDecl *
-HLSLRootSignatureDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID) {
+HLSLRootSignatureDecl::CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID) {
HLSLRootSignatureDecl *Result = new (C, ID)
HLSLRootSignatureDecl(nullptr, SourceLocation(), nullptr,
/*Version*/ llvm::dxbc::RootSignatureVersion::V1_1,
@@ -6044,7 +6054,7 @@ ImportDecl::ImportDecl(DeclContext *DC, SourceLocation StartLoc,
*getTrailingObjects() = EndLoc;
}
-ImportDecl *ImportDecl::Create(ASTContext &C, DeclContext *DC,
+ImportDecl *ImportDecl::Create(const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc, Module *Imported,
ArrayRef<SourceLocation> IdentifierLocs) {
return new (C, DC,
@@ -6052,7 +6062,7 @@ ImportDecl *ImportDecl::Create(ASTContext &C, DeclContext *DC,
ImportDecl(DC, StartLoc, Imported, IdentifierLocs);
}
-ImportDecl *ImportDecl::CreateImplicit(ASTContext &C, DeclContext *DC,
+ImportDecl *ImportDecl::CreateImplicit(const ASTContext &C, DeclContext *DC,
SourceLocation StartLoc,
Module *Imported,
SourceLocation EndLoc) {
@@ -6062,7 +6072,7 @@ ImportDecl *ImportDecl::CreateImplicit(ASTContext &C, DeclContext *DC,
return Import;
}
-ImportDecl *ImportDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID,
+ImportDecl *ImportDecl::CreateDeserialized(const ASTContext &C, GlobalDeclID ID,
unsigned NumLocations) {
return new (C, ID, additionalSizeToAlloc<SourceLocation>(NumLocations))
ImportDecl(EmptyShell());
@@ -6088,12 +6098,13 @@ SourceRange ImportDecl::getSourceRange() const {
void ExportDecl::anchor() {}
-ExportDecl *ExportDecl::Create(ASTContext &C, DeclContext *DC,
+ExportDecl *ExportDecl::Create(const ASTContext &C, DeclContext *DC,
SourceLocation ExportLoc) {
return new (C, DC) ExportDecl(DC, ExportLoc);
}
-ExportDecl *ExportDecl::CreateDeserialized(ASTContext &C, GlobalDeclID ID) {
+ExportDecl *ExportDecl::CreateDeserialized(const ASTContext &C,
+ GlobalDeclID ID) {
return new (C, ID) ExportDecl(nullptr, SourceLocation());
}
diff --git a/clang/lib/AST/DeclCXX.cpp b/clang/lib/AST/DeclCXX.cpp
index 083c53e28cb91..382737dfa39f0 100644
--- a/clang/lib/AST/DeclCXX.cpp
+++ b/clang/lib/AST/DeclCXX.cpp
@@ -3318,7 +3318,7 @@ NamespaceDecl *UsingDirectiveDecl::getNominatedNamespace() {
return cast_or_null<NamespaceDecl>(NominatedNamespace);
}
-NamespaceDecl::NamespaceDecl(ASTContext &C, DeclContext *DC, bool Inline,
+NamespaceDecl::NamespaceDecl(const ASTContext &C, DeclContext *DC, bool Inline,
SourceLocation StartLoc, SourceLocation IdLoc,
IdentifierInfo *Id, NamespaceDecl *PrevDecl,
bool Nested)
@@ -3329,7 +3329,7 @@ NamespaceDecl::NamespaceDecl(ASTContext &C, DeclContext *DC, bool Inline,
setPreviousDecl(PrevDecl);
}
-NamespaceDecl *NamespaceDecl::Create(ASTContext &C, DeclContext *DC,
+NamespaceDecl *NamespaceDecl::Create(const ASTContext &C, DeclContext *DC,
bool Inline, SourceLocation StartLoc,
SourceLocation IdLoc, IdentifierInfo *Id,
NamespaceDecl *PrevDecl, bool Nested) {
@@ -3337,7 +3337,7 @@ NamespaceDecl *NamespaceDecl::Create(ASTContext &C, DeclContext *DC,
NamespaceDecl(C, DC, Inline, StartLoc, IdLoc, Id, PrevDecl, Nested);
}
-NamespaceDecl *NamespaceDecl::CreateDeserialized(ASTContext &C,
+NamespaceDecl *NamespaceDecl::CreateDeserialized(const ASTContext &C,
GlobalDeclID ID) {
return new (C, ID) NamespaceDecl(C, nullptr, false, SourceLocation(),
SourceLocation(), nullptr, nullptr, false);
More information about the cfe-commits
mailing list