Add final/explicit getters and setters to CXXRecordDecl.

llvm-svn: 124037
This commit is contained in:
Anders Carlsson 2011-01-22 17:22:48 +00:00
parent 4b63d0e0a7
commit 67f9e61127
2 changed files with 20 additions and 1 deletions

View File

@ -356,6 +356,12 @@ class CXXRecordDecl : public RecordDecl {
/// \brief Whether we have already declared a destructor within the class. /// \brief Whether we have already declared a destructor within the class.
bool DeclaredDestructor : 1; bool DeclaredDestructor : 1;
/// \brief Whether this class is marked 'final'.
bool IsMarkedFinal : 1;
/// \brief Whether this class is marked 'explicit'.
bool IsMarkedExplicit : 1;
/// NumBases - The number of base class specifiers in Bases. /// NumBases - The number of base class specifiers in Bases.
unsigned NumBases; unsigned NumBases;
@ -658,7 +664,19 @@ public:
/// ///
/// This value is used for lazy creation of destructors. /// This value is used for lazy creation of destructors.
bool hasDeclaredDestructor() const { return data().DeclaredDestructor; } bool hasDeclaredDestructor() const { return data().DeclaredDestructor; }
/// \brief Whether this class is marked 'final'.
bool isMarkedFinal() const { return data().IsMarkedFinal; }
/// \brief Mark this class as 'final'.
void setIsMarkedFinal(bool IMF) { data().IsMarkedFinal = IMF; }
/// \brief Whether this class is marked 'explicit'.
bool isMarkedExplicit() const { return data().IsMarkedExplicit; }
/// \brief Mark this class as 'explicit'.
void setIsMarkedExplicit(bool IME) { data().IsMarkedExplicit = IME; }
/// getConversions - Retrieve the overload set containing all of the /// getConversions - Retrieve the overload set containing all of the
/// conversion functions in this class. /// conversion functions in this class.
UnresolvedSetImpl *getConversionFunctions() { UnresolvedSetImpl *getConversionFunctions() {

View File

@ -36,6 +36,7 @@ CXXRecordDecl::DefinitionData::DefinitionData(CXXRecordDecl *D)
HasTrivialDestructor(true), ComputedVisibleConversions(false), HasTrivialDestructor(true), ComputedVisibleConversions(false),
DeclaredDefaultConstructor(false), DeclaredCopyConstructor(false), DeclaredDefaultConstructor(false), DeclaredCopyConstructor(false),
DeclaredCopyAssignment(false), DeclaredDestructor(false), DeclaredCopyAssignment(false), DeclaredDestructor(false),
IsMarkedFinal(false), IsMarkedExplicit(false),
NumBases(0), NumVBases(0), Bases(), VBases(), NumBases(0), NumVBases(0), Bases(), VBases(),
Definition(D), FirstFriend(0) { Definition(D), FirstFriend(0) {
} }