diff options
author | Anders Carlsson <andersca@mac.com> | 2009-05-14 21:46:00 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-05-14 21:46:00 +0000 |
commit | a75e8534f2b7c2480c48f31f301bd00b241c5499 (patch) | |
tree | 05ceade41dc6689fe4fd1eafe72fe90983db75de | |
parent | 48dd19b19ddb9e105f8cf0bf6f0732ca4e6a385b (diff) |
Improvements to the FunctionDecl getters/setters.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71800 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/AST/Decl.h | 22 | ||||
-rw-r--r-- | lib/AST/Decl.cpp | 4 | ||||
-rw-r--r-- | lib/Frontend/PCHReaderDecl.cpp | 4 | ||||
-rw-r--r-- | lib/Frontend/PCHWriterDecl.cpp | 4 | ||||
-rw-r--r-- | lib/Sema/SemaDecl.cpp | 2 |
5 files changed, 20 insertions, 16 deletions
diff --git a/include/clang/AST/Decl.h b/include/clang/AST/Decl.h index b2f18a73c5..a0b47c9e40 100644 --- a/include/clang/AST/Decl.h +++ b/include/clang/AST/Decl.h @@ -519,8 +519,8 @@ private: bool C99InlineDefinition : 1; bool IsVirtual : 1; bool IsPure : 1; - bool InheritedPrototype : 1; - bool HasPrototype : 1; + bool HasInheritedPrototype : 1; + bool HasWrittenPrototype : 1; bool IsDeleted : 1; // Move to DeclGroup when it is implemented. @@ -546,8 +546,8 @@ protected: DeclContext(DK), ParamInfo(0), Body(), PreviousDeclaration(0), SClass(S), IsInline(isInline), C99InlineDefinition(false), - IsVirtual(false), IsPure(false), InheritedPrototype(false), - HasPrototype(true), IsDeleted(false), TypeSpecStartLoc(TSSL), + IsVirtual(false), IsPure(false), HasInheritedPrototype(false), + HasWrittenPrototype(true), IsDeleted(false), TypeSpecStartLoc(TSSL), TemplateOrInstantiation() {} virtual ~FunctionDecl() {} @@ -557,7 +557,7 @@ public: static FunctionDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName N, QualType T, StorageClass S = None, bool isInline = false, - bool hasPrototype = true, + bool hasWrittenPrototype = true, SourceLocation TSStartLoc = SourceLocation()); SourceLocation getTypeSpecStartLoc() const { return TypeSpecStartLoc; } @@ -604,13 +604,17 @@ public: /// was explicitly written or because it was "inherited" by merging /// a declaration without a prototype with a declaration that has a /// prototype. - bool hasPrototype() const { return HasPrototype || InheritedPrototype; } - void setHasPrototype(bool P) { HasPrototype = P; } + bool hasPrototype() const { + return HasWrittenPrototype || HasInheritedPrototype; + } + + bool hasWrittenPrototype() const { return HasWrittenPrototype; } + void setHasWrittenPrototype(bool P) { HasWrittenPrototype = P; } /// \brief Whether this function inherited its prototype from a /// previous declaration. - bool inheritedPrototype() const { return InheritedPrototype; } - void setInheritedPrototype(bool P = true) { InheritedPrototype = P; } + bool hasInheritedPrototype() const { return HasInheritedPrototype; } + void setHasInheritedPrototype(bool P = true) { HasInheritedPrototype = P; } /// \brief Whether this function has been deleted. /// diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index 319d4d5756..c62c1e2b0e 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -123,12 +123,12 @@ FunctionDecl *FunctionDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName N, QualType T, StorageClass S, bool isInline, - bool hasPrototype, + bool hasWrittenPrototype, SourceLocation TypeSpecStartLoc) { FunctionDecl *New = new (C) FunctionDecl(Function, DC, L, N, T, S, isInline, TypeSpecStartLoc); - New->HasPrototype = hasPrototype; + New->HasWrittenPrototype = hasWrittenPrototype; return New; } diff --git a/lib/Frontend/PCHReaderDecl.cpp b/lib/Frontend/PCHReaderDecl.cpp index 9dd1565890..45af36c82f 100644 --- a/lib/Frontend/PCHReaderDecl.cpp +++ b/lib/Frontend/PCHReaderDecl.cpp @@ -151,8 +151,8 @@ void PCHDeclReader::VisitFunctionDecl(FunctionDecl *FD) { FD->setC99InlineDefinition(Record[Idx++]); FD->setVirtual(Record[Idx++]); FD->setPure(Record[Idx++]); - FD->setInheritedPrototype(Record[Idx++]); - FD->setHasPrototype(Record[Idx++]); + FD->setHasInheritedPrototype(Record[Idx++]); + FD->setHasWrittenPrototype(Record[Idx++]); FD->setDeleted(Record[Idx++]); FD->setTypeSpecStartLoc(SourceLocation::getFromRawEncoding(Record[Idx++])); // FIXME: C++ TemplateOrInstantiation diff --git a/lib/Frontend/PCHWriterDecl.cpp b/lib/Frontend/PCHWriterDecl.cpp index 96045f94c5..48c7dc2d4a 100644 --- a/lib/Frontend/PCHWriterDecl.cpp +++ b/lib/Frontend/PCHWriterDecl.cpp @@ -151,8 +151,8 @@ void PCHDeclWriter::VisitFunctionDecl(FunctionDecl *D) { Record.push_back(D->isC99InlineDefinition()); Record.push_back(D->isVirtual()); Record.push_back(D->isPure()); - Record.push_back(D->inheritedPrototype()); - Record.push_back(D->hasPrototype() && !D->inheritedPrototype()); + Record.push_back(D->hasInheritedPrototype()); + Record.push_back(D->hasWrittenPrototype()); Record.push_back(D->isDeleted()); Writer.AddSourceLocation(D->getTypeSpecStartLoc(), Record); // FIXME: C++ TemplateOrInstantiation diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index 20b24d1231..1c464d16b0 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -736,7 +736,7 @@ bool Sema::MergeFunctionDecl(FunctionDecl *New, Decl *OldD) { OldProto->isVariadic(), OldProto->getTypeQuals()); New->setType(NewQType); - New->setInheritedPrototype(); + New->setHasInheritedPrototype(); // Synthesize a parameter for each argument type. llvm::SmallVector<ParmVarDecl*, 16> Params; |