jhuber6 updated this revision to Diff 513997. jhuber6 added a comment. Address nit
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148444/new/ https://reviews.llvm.org/D148444 Files: clang-tools-extra/clang-tidy/llvmlibc/InlineFunctionDeclCheck.cpp clang-tools-extra/test/clang-tidy/checkers/llvmlibc/inline-function-decl.hpp Index: clang-tools-extra/test/clang-tidy/checkers/llvmlibc/inline-function-decl.hpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/llvmlibc/inline-function-decl.hpp +++ clang-tools-extra/test/clang-tidy/checkers/llvmlibc/inline-function-decl.hpp @@ -60,6 +60,14 @@ } }; +LIBC_INLINE void lambda() { +// CHECK-MESSAGES-NOT: :[[@LINE+4]]:3: warning: '__invoke' must be tagged with the LIBC_INLINE macro; the macro should be placed at the beginning of the declaration [llvmlibc-inline-function-decl] +// CHECK-MESSAGES-NOT: :[[@LINE+3]]:3: warning: 'operator void (*)()' must be tagged with the LIBC_INLINE macro; the macro should be placed at the beginning of the declaration [llvmlibc-inline-function-decl] +// CHECK-MESSAGES-NOT: :[[@LINE+2]]:3: warning: '~(lambda at [[FILENAME:.+]])' must be tagged with the LIBC_INLINE macro; the macro should be placed at the beginning of the declaration [llvmlibc-inline-function-decl] +// CHECK-MESSAGES-NOT: :[[@LINE+1]]:6: warning: 'operator()' must be tagged with the LIBC_INLINE macro; the macro should be placed at the beginning of the declaration [llvmlibc-inline-function-decl] + [](){}; +} + } // namespace __llvm_libc #endif // LLVM_CLANG_TOOLS_EXTRA_TEST_CLANG_TIDY_CHECKERS_LLVMLIBC_INLINEFUNCTIONDECL_H Index: clang-tools-extra/clang-tidy/llvmlibc/InlineFunctionDeclCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/llvmlibc/InlineFunctionDeclCheck.cpp +++ clang-tools-extra/clang-tidy/llvmlibc/InlineFunctionDeclCheck.cpp @@ -39,6 +39,12 @@ HeaderFileExtensions)) return; + // Consider only functions with an external and visible declaration. + if (const auto *MethodDecl = dyn_cast<CXXMethodDecl>(FuncDecl)) { + if (MethodDecl->getParent()->isLambda()) + return; + } + // Check if decl starts with LIBC_INLINE auto Loc = FullSourceLoc(Result.SourceManager->getFileLoc(SrcBegin), *Result.SourceManager);
Index: clang-tools-extra/test/clang-tidy/checkers/llvmlibc/inline-function-decl.hpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/llvmlibc/inline-function-decl.hpp +++ clang-tools-extra/test/clang-tidy/checkers/llvmlibc/inline-function-decl.hpp @@ -60,6 +60,14 @@ } }; +LIBC_INLINE void lambda() { +// CHECK-MESSAGES-NOT: :[[@LINE+4]]:3: warning: '__invoke' must be tagged with the LIBC_INLINE macro; the macro should be placed at the beginning of the declaration [llvmlibc-inline-function-decl] +// CHECK-MESSAGES-NOT: :[[@LINE+3]]:3: warning: 'operator void (*)()' must be tagged with the LIBC_INLINE macro; the macro should be placed at the beginning of the declaration [llvmlibc-inline-function-decl] +// CHECK-MESSAGES-NOT: :[[@LINE+2]]:3: warning: '~(lambda at [[FILENAME:.+]])' must be tagged with the LIBC_INLINE macro; the macro should be placed at the beginning of the declaration [llvmlibc-inline-function-decl] +// CHECK-MESSAGES-NOT: :[[@LINE+1]]:6: warning: 'operator()' must be tagged with the LIBC_INLINE macro; the macro should be placed at the beginning of the declaration [llvmlibc-inline-function-decl] + [](){}; +} + } // namespace __llvm_libc #endif // LLVM_CLANG_TOOLS_EXTRA_TEST_CLANG_TIDY_CHECKERS_LLVMLIBC_INLINEFUNCTIONDECL_H Index: clang-tools-extra/clang-tidy/llvmlibc/InlineFunctionDeclCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/llvmlibc/InlineFunctionDeclCheck.cpp +++ clang-tools-extra/clang-tidy/llvmlibc/InlineFunctionDeclCheck.cpp @@ -39,6 +39,12 @@ HeaderFileExtensions)) return; + // Consider only functions with an external and visible declaration. + if (const auto *MethodDecl = dyn_cast<CXXMethodDecl>(FuncDecl)) { + if (MethodDecl->getParent()->isLambda()) + return; + } + // Check if decl starts with LIBC_INLINE auto Loc = FullSourceLoc(Result.SourceManager->getFileLoc(SrcBegin), *Result.SourceManager);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits