1 //===--- CloexecMemfdCreateCheck.cpp - clang-tidy--------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #include "CloexecMemfdCreateCheck.h" 10 11 using namespace clang::ast_matchers; 12 13 namespace clang::tidy::android { 14 registerMatchers(MatchFinder * Finder)15void CloexecMemfdCreateCheck::registerMatchers(MatchFinder *Finder) { 16 auto CharPointerType = hasType(pointerType(pointee(isAnyCharacter()))); 17 registerMatchersImpl( 18 Finder, functionDecl(returns(isInteger()), hasName("memfd_create"), 19 hasParameter(0, CharPointerType), 20 hasParameter(1, hasType(isInteger())))); 21 } 22 check(const MatchFinder::MatchResult & Result)23void CloexecMemfdCreateCheck::check(const MatchFinder::MatchResult &Result) { 24 insertMacroFlag(Result, "MFD_CLOEXEC", /*ArgPos=*/1); 25 } 26 27 } // namespace clang::tidy::android 28