]> granicus.if.org Git - clang/commitdiff
Move CXXMethodDecl::OutOfLineDefinition into Decl::OutOfLine.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Wed, 17 Jun 2009 22:49:50 +0000 (22:49 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Wed, 17 Jun 2009 22:49:50 +0000 (22:49 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73651 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/DeclBase.h
include/clang/AST/DeclCXX.h
lib/CodeGen/CodeGenModule.cpp
lib/Frontend/ASTConsumers.cpp
lib/Sema/SemaDecl.cpp

index 5c9fd342fa968afc497d22026824037b627c3edf..291034e100a17121784e36ff9c0875925787ad82 100644 (file)
@@ -268,6 +268,10 @@ public:
   const DeclContext *getLexicalDeclContext() const {
     return const_cast<Decl*>(this)->getLexicalDeclContext();
   }
+
+  bool isOutOfLine() const {
+    return getLexicalDeclContext() != getDeclContext();
+  }
   
   /// setDeclContext - Set both the semantic and lexical DeclContext
   /// to DC.
index d5ae99c9f01ead729471e6c8ebf8cd0434d67c89..1dd2bceb43d1b6dffe40da4b4c224da7d1b40f1f 100644 (file)
@@ -477,10 +477,6 @@ public:
   bool isStatic() const { return getStorageClass() == Static; }
   bool isInstance() const { return !isStatic(); }
 
-  bool isOutOfLineDefinition() const {
-    return getLexicalDeclContext() != getDeclContext();
-  }
-
   bool isVirtual() const { 
     return isVirtualAsWritten() ||
       (begin_overridden_methods() != end_overridden_methods());
index 82156e9ffa5c1bf4e890c6764cb1c045224da894..a0f0492378f3d95dc946ba7d9bdcaa53fd03f20b 100644 (file)
@@ -244,7 +244,7 @@ static CodeGenModule::GVALinkage
 GetLinkageForFunction(const FunctionDecl *FD, const LangOptions &Features) {
   if (const CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(FD)) {
     // C++ member functions defined inside the class are always inline.
-    if (MD->isInline() || !MD->isOutOfLineDefinition())
+    if (MD->isInline() || !MD->isOutOfLine())
       return CodeGenModule::GVA_CXXInline;
     
     return CodeGenModule::GVA_StrongExternal;
index 11c9251ae98753a051f8ab2f483f3b7c74c374a9..5844be826cf7faf9a7551da4ecf9fbb91ce54091 100644 (file)
@@ -243,7 +243,7 @@ void DeclContextPrinter::PrintDeclContext(const DeclContext* DC,
   }
   case Decl::CXXMethod: {
     const CXXMethodDecl* D = cast<CXXMethodDecl>(DC);
-    if (D->isOutOfLineDefinition())
+    if (D->isOutOfLine())
       Out << "[c++ method] ";
     else if (D->isImplicit())
       Out << "(c++ method) ";
@@ -273,7 +273,7 @@ void DeclContextPrinter::PrintDeclContext(const DeclContext* DC,
   }
   case Decl::CXXConstructor: {
     const CXXConstructorDecl* D = cast<CXXConstructorDecl>(DC);
-    if (D->isOutOfLineDefinition())
+    if (D->isOutOfLine())
       Out << "[c++ ctor] ";
     else if (D->isImplicit())
       Out << "(c++ ctor) ";
@@ -302,7 +302,7 @@ void DeclContextPrinter::PrintDeclContext(const DeclContext* DC,
   }
   case Decl::CXXDestructor: {
     const CXXDestructorDecl* D = cast<CXXDestructorDecl>(DC);
-    if (D->isOutOfLineDefinition())
+    if (D->isOutOfLine())
       Out << "[c++ dtor] ";
     else if (D->isImplicit())
       Out << "(c++ dtor) ";
@@ -318,7 +318,7 @@ void DeclContextPrinter::PrintDeclContext(const DeclContext* DC,
   }
   case Decl::CXXConversion: {
     const CXXConversionDecl* D = cast<CXXConversionDecl>(DC);
-    if (D->isOutOfLineDefinition())
+    if (D->isOutOfLine())
       Out << "[c++ conversion] ";
     else if (D->isImplicit())
       Out << "(c++ conversion) ";
index 829ea91028495eb4c0cb1f2eaa9557e50122cfe1..0c5ec60e887baf92f98fa42a8257dab748829709 100644 (file)
@@ -183,7 +183,7 @@ DeclSpec::TST Sema::isTagName(IdentifierInfo &II, Scope *S) {
 DeclContext *Sema::getContainingDC(DeclContext *DC) {
   if (CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(DC)) {
     // A C++ out-of-line method will return to the file declaration context.
-    if (MD->isOutOfLineDefinition())
+    if (MD->isOutOfLine())
       return MD->getLexicalDeclContext();
 
     // A C++ inline method is parsed *after* the topmost class it was declared