From: Chris Lattner Date: Tue, 12 May 2009 20:55:07 +0000 (+0000) Subject: Method who have definitions in structs/classes are semantically inline. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0afeaa3ff83d88c52bf785825d6bab8848f44772;p=clang Method who have definitions in structs/classes are semantically inline. Per the FIXME, it might be interesting to track whether the inline keyword was also used on the method, but for now we don't do this. Testcase pending. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71589 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index c778ca6c29..d8b6f45e37 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -2067,6 +2067,13 @@ Sema::ActOnFunctionDeclarator(Scope* S, Declarator& D, DeclContext* DC, } // This is a C++ method declaration. + + // FIXME: All inline method declarations are semantically inline. We + // should add a new bit to keep track of whether they were declared with an + // inline keyword as well. + if (CurContext == DC && IsFunctionDefinition) + isInline = true; + NewFD = CXXMethodDecl::Create(Context, cast(DC), D.getIdentifierLoc(), Name, R, (SC == FunctionDecl::Static), isInline);